java 第三次课后作业

1、java字段初始化的规律

public class gouzao {

public static void main(String[] args) {
test te=new test();
System.out.println(te.field);
te=new test(300);
System.out.println(te.field);
}

}

package text9;

public class test {
{
field=100;
}
public int field=100;
public test(int value) {
this.field=value;
}
public test() {

}
}

结果

100

300

该初始化快的值初始化块和字段的初始值无关,该变量的数值大小取决于初始化块和设定的字段的初始值先后关系,Java会将最后一次的初始化结果赋给该变量。

2.

package com;

class Root
{
	static{
		System.out.println("Root的静态初始化块");
	}
	{
		System.out.println("Root的普通初始化块");
	}
	public Root()
	{
		System.out.println("Root的无参数的构造器");
	}
}
class Mid extends Root
{
	static{
		System.out.println("Mid的静态初始化块");
	}
	{
		System.out.println("Mid的普通初始化块");
	}
	public Mid()
	{
		System.out.println("Mid的无参数的构造器");
	}
	public Mid(String msg)
	{
		//通过this调用同一类中重载的构造器
		this();
		System.out.println("Mid的带参数构造器,其参数值:" + msg);
	}
}
class Leaf extends Mid
{
	static{
		System.out.println("Leaf的静态初始化块");
	}
	{
		System.out.println("Leaf的普通初始化块");
	}	
	public Leaf()
	{
		//通过super调用父类中有一个字符串参数的构造器
		super("Java初始化顺序演示");
		System.out.println("执行Leaf的构造器");
	}

}

public class TestStaticInitializeBlock
{
	public static void main(String[] args) 
	{
		new Leaf();
		

	}
}

  

 有结果可以看的执行顺序是先父类后子类执行初始化快,之按普通初始化、无参数、有参数的构造器顺序执行也是先父类后子类,若执行子类需要向父类传参则先执行父类则执行子类。

3、

package text9;

public class gouzao {

	public static void main(String[] args) {
		gouzao gou1=new gouzao();
		gouzao gou2=new gouzao();
		gouzao gou3=new gouzao();
		gouzao gou4=new gouzao();
		System.out.println("总共创建的对象个数"+n);
	}

	static int n=0;
	public gouzao()
	{
		n++;
	}
}

  

 此函数查看构造函数被调用了多少次。

4.

package text9;

public class gouzao
{
 int x = 3;//类的实例变量
 public static void fw()//静态方法
  {   
   System.out.println("实例变量x = " + new gouzao().x);
 //需要先实例化之后才可以访问。
  }

 public static void main(String[] args) 
    {
	     gouzao.fw();
         gouzao gou = new gouzao();
        System.out.println("x = " + gou.x);
    }
}

  

 在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式。而实例方法只有将其实例化这种方式。也就是说,调用静态方法可以无需创建对象

猜你喜欢

转载自www.cnblogs.com/dwx8845/p/11695452.html