在定义类时,为了保证类中成员数据安全性及的封装性,防止成员数据值被任意修改,通常将类中成员属性用private进行修饰。
被private所修改的成员变量,只能在类中访问,跳出本类中,就无法直接访问。
其它类要对该成员变量进行操作,则通常要进行设置setter和读取getter操作,即设置采用setxxx()方法, 获取采用getxxx()方法。
实例1:
如下,study包中,创建一个Job类
Job类中,jobName为private属性。使用set()和get()方法,进行设置和获取。
set()方法用于外部调用时,传递实参name值。
get()方法用于外部调用时,获取实参name值。
package study; //设置一个包 //创建一个类 public class Job { //类中的属性为private私有 private String jobName; //设置一个public方法,用于外部设置jobName值。 //形参name为String类型,外部调用时,将实参值传给name,然后name值传给jobName,返回值为空 public void setJobName(String name){ jobName=name; } //设置一个public方法,用于外部访问jobName值。 //上一步,外部调用setxxxx方法时,将实参值传给了jobName,在这步即可将jobName值返回,返回类型与jobName值一致。 public String getJobName(){ return jobName; } }
以上,设置和调用private值的模型创建完成后,即可实例化Job类
import study.*; public class MyTest { public static void main(String[] args) { Job z=new Job(); //创建z对象 z.setJobName("城管"); //z调用set方法,将实参值“城管”转给Job类set方法中的name System.out.println(z.getJobName()); //z调用get方法,获取实参值 } }
输出结果:
城管
实例2:
当set()和get()方法中的形参与private修饰的变量名一致时,set()和get()方法需要中,需要用this关键字
定义类,如下
package study; public class Job { private String jobName; //形参jobName与private所修饰的变量名一致时,需要在变量名前加this.,表示调用者。如z对象调用,this就代表z public void setJobName(String jobName){ this.jobName=jobName; } //返回值前加this.,同样代表调用者。即回返调用者的值。 public String getJobName(){ return this.jobName; } }
模型创建完成后,即可实例化对象
import study.*; public class MyTest { public static void main(String[] args) { Job z=new Job(); //创建z对象 z.setJobName("警察"); //z调用set方法,将实参值“城管”转给Job类set方法中的jobName。z即模型中的this。 System.out.println(z.getJobName()); //z调用get方法,获取实参值。z即模型中的this。 } }
输出结果:
警察
总结:
访问类中的private变量时,才用到set()主和get()方法。
设置,set():返回值为空void,有形参,形参名与private变量名一致时要加this.
获取,get():无形参,返回值及返回类型,与获取的private变量名一致。
私有成员的设置和访问方式——setXxx()和getXxx()
原文:http://www.cnblogs.com/ibelieve618/p/6362939.html