java中的static,传值机制,package

static关键字:

在类中,用static 申明的成员变量为静态成员变量,也叫类变量,类变量的生命周期和类相同,

  1. 在整个应用程序执行期间都有效。
  2. static修饰的成员变量和方法从属于类,普通变量和方法从属于对象。
  3. 静态类中只能使用静态的方法和变量,非静态对象可以使用静态和非静态的变量和方法。

静态初始化块:
构造方法用于对象的初始化,静态初始化块用于类的初始化操作,在静态初始化块中不能直接访问非static成员。

静态初始块执行顺序:
1.上升到Object类,先执行Object的静态初始化块,再向下执行子类的静态初始化块,直到我们的类的静态初始化块为止
2.构造方法的执行顺序和上面顺序一样。

注意:
静态方法中不能使用this,因为静态方法是属于类的,存放在方法区的,而this是属于对象的,存放在堆中

public class Statictest {
	int id;
	String name;
	String pwd;
	static String company;
	
	static {
		System.out.println("执行类的初始化工作");
		company="BMI";
		printCompany();
	}
	public static void printCompany() {
		System.out.println(company);
	}
	public static void main(String[] args) {
		Statictest s=null;//只进行类的初始化,没有创建对象
	}
}

java中的传值机制:在java中所有的参数传递,传递的都是值的副本

public class Statictest {
	int id;
	String name;
	public Statictest(int id,String name) {
		this.id=id;
		this.name=name;
	}
	
	public void change1(Statictest u) {//u的地址就是u1的地址
		u.id=1001; //即是将u1的id改变了
	}
	public void change2(Statictest u) {//此时u的地址就是u1的地址
		u=new Statictest(1003,"yi");//此时u的地址是重新分配的地址,与u1的地址是不同的
		//因此u1的信息没有改变。
	}
	public static void main(String[] args) {
		Statictest u1=new Statictest(1002,"yi");
		u1.change1(u1);
		System.out.println(u1.id);
		u1.change2(u1);//并没有改变u1对象的值。
		System.out.println(u1.id);
	}
}

java中的package的机制:类似于文件夹

包名:域名倒着写:cn.stx.a.b;
报名唯一第一句非注释类。
同一个包中的类是可以相互使用的,不同的包中可以通过导入的方式,进行使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值