final 实例

public class Person {
	private final int age;// 只声明 没有初始化 不能用 和 int age = 10 不一样
	private final Dog dog; // 直接赋值时为常量 常量大写 可用static public 修饰 不可变 不灵活 

	public Person() {  // 用 构造方法可以初始化操作 赋初始值
		this.age = 20;  // 在这个构造器中 只能初始化一次 在另一个构造器中还可以赋值 两个构造器平行
		dog = new Dog();// 自定义类初始化;
	}

	public Person(int age, Dog dog) {
		this.age = age;
		this.dog = dog;
	}

	void setAge(int age) { // 进行赋值 
		// this.age = age;
	}

	int getAge() {
		System.out.println(this.age);
		return age;
	}

	void setDog(Dog dog) { // 无法用 set 方法 赋值 fianl 修饰的自定义类 地址不变 
		// 可以新开辟内存地址赋值
		 // this.dog = dog;
		//System.out.println(this.dog);
	}

	Dog getDog() {
		System.out.println(this.dog);
		return dog;
	}

	
}

Dog类中的属性可以改变 Person类中定义的final Dog类是地址值不变 但是可以改变 Dog中的属性 

public class Dog {
	private String name;
	private String color;

	void setName(String name) {
		this.name = name;
	}

	String getName() {
		System.out.println(this.name);
		return name;
	}

	void setColor(String color) {
		this.color = color;
	}

	String getColor() {
		System.out.println(this.color);
		return color;
	}

	public Dog(){

	}



}

注意 构造方法 是用来初始化赋值的 普通 set 方法是用来赋值的 也叫设置值 有区别   

public class TestFinal {
	public static void main(String args[]) {

		
		Person per = new Person();
		per.getAge();
		per.getDog();

		Dog dog = per.getDog();
		dog.setColor("blank");
		dog.getColor();

		Dog dog1 = new Dog(); // final 修饰的Dog类 是个地址 地址实例化进行构造器传值
		Person person = new Person(20, dog1);// 构造器传值调用一次
		dog1.setName("Mosa");
		dog1.setColor("Yello");// 方法传值可以调用多次 

		dog1.getName();
		dog1.getColor();

		person.getDog().getName();
		person.getDog().getColor();

		Dog d = person.getDog();
		d.setColor("Green");
		d.getColor();



	}
}

有两个行参的构造 dog1 是实例化的 注意 一个形参构造和两个形参构造传值调用输出的地址值不一样

142304_6LPy_3489292.png

转载于:https://my.oschina.net/u/3489292/blog/1057717

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值