2 java 参数传递 | 静态变量 | 继承与静态初始化块


java 参数传递有两种数据类型:

1,原生数据类型 8种基本数据类型。原生数据类型传递后会对值进行传递,不会对外部传递的变量做改变。

2,传递对象引用。

在java中,对于方法的参数传递,不管是原始数据类型还是引用数据类型,一律是串值:pass by value。

public void changeString(String str){
	String str = "abc";
}

public static void main(String[] args){
	String str = "xyz";
	new 对象().chengeString(str);
	System.out.println(str);
	// 输出“xyz”
}

---------------------------

静态变量

public class StaticTest {
	private static StaticTest st = new StaticTest();
	pirvate static int count1;
	private static int count2 = 0;
	private StaticTest(){
		count1++;
		count2++;
	}
	public static StaticTest getInstance(){
		return st; 
 	 }

	public static void main(String[] arge){
		StaticTest st = StaticTest.getInstance();

		System.out.println("count1: " + st.count1);
		System.out.println("count2: " + st.count2);
	 }
 }

程序编译执行结果?

输出结果:

count1:1

count2:0


执行顺序:

先执行main方法

再执行静态化部分,顺序执行,从上到下。

先执行 private static StaticTest st = new StaticTest();

在执行构造函数,这时构造函数把 count1和count2都进行++操作,完后 count1 = 1,count2 = 1。

在执行 public static int count1;  由于这一行并没有显示的被赋值操作,所以这是count1 = 1, 构造器里的++操作。

在执行 public static int count2;  由于这一行有显示的赋值操作,又把count2 设置为 0 。

所以如上输出结果。

-----------------------------------------

继承与初始化块?

public class Test{
	pubilc static void main(String[] arge){
		new Child();
 	}
 }
class Parent{
	static{
		System.out.println("parent static block");
 	}
	public Parent(){
		System.out.println("parent constructor");
	} 
}

class Child extends Parent{
	static{
		System.out.println("child static block");
 	}
	public Child(){
		System.out.println("child constructor");
 	}
}

程序输出?

parent static block

child static block

parent constructor

child constructor


先调用静态初始化块,父类 子类。

在调用构造器 ,父类 子类。


super(); 显示的调用父类的构造方法,super(参数); 显示的调用带参数的父类构造方法。



 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值