深入了解get/set方法

get/set 方法顾名思义,就是一个获得,一个设置方法,它们主要是用来对一个类的私有域操作(私有属性),先看短程序。
Father.java

package inherit;
public class Father {
	private String name;		//私有属性姓名
	public String getName() {	//get方法
		return name;
	}
	/**
	*	set 方法
	*   等号左边的this.name 指代的是这个类的自己私有域private String name
	*	等号右边的name 指代的是圆括号里面的String name ,这是外部调用setName时传入的参数
	*/
	public void setName(String name) { 
		this.name = name;	
	}
}

Son.java

package inherit;

public class Son extends Father {
	private String name;				//私有属性,姓名
	public String getName() {			//get方法
		return name;
	}
	public void setName(String name) {	//set方法
		this.name = name;
	}
}

MainTest.java

package inherit;

public class MainTest {
	public static void main(String[] args) {
		Father aFather =  new Father();
		//aFather.name = "小头爸爸"          ->   如果用这个会出错,编译都通不过,因为是私有属性该类之外无法访问
		aFather.setName("小头爸爸");			//调用Father类的setName方法
		System.out.println("爸爸的名字叫做:"+aFather.getName());
		Son aSon = new Son();				
		aSon.setName("大头儿子");				//调用Son类的setName方法
		System.out.println("儿子的名字叫做:"+aSon.getName());
	}

}

在这里插入图片描述
从上例可以看出,get/set方法就是方便在类外,对该类的私有域(private修饰的)进行操作的,get/set方法的命名是“get/set+属性名”,上例的私有域是name,私有命名是“getName,setName”,采用驼峰命名法,它们用public 修饰,想想这事很神奇,本身该私有域是不允许外部访问,只允许类内部访问,打一个比方,一户人家的房子是一个类,桌椅是private修饰的私有属性,它还有一个public修饰的公共方法扫地机器人,对于局外人的你,是无法在外部对桌椅进行操作的,但你可以操作扫地机器人,因为它是public修饰的,而扫地机器人是这个房子内部成员,它却可以对桌椅这个私有的属性进行操作,因此我们就可以通过操作机器人来操作桌椅,间接达到操作私有域目的,我的理解是用get/set方法来操作对私有域只是约定俗成的,你也可以在类内部其它方法中,设置对私有域的操作,但这样很危险,可能不知道自己在干什么就改变了私有域,那么把属性设置为私有域的安全考虑就化为乌有了。
彩蛋: Eclipse中能自动生成get/set方法,shift+alt+s键调用会出现如下弹窗,选中蓝色部分即可,私有域很多的时候老方便了。
在这里插入图片描述

  • 17
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值