私有成员的设置和访问方式——setter和getter

在定义类时,为了保证类中成员数据安全性及的封装性,防止成员数据值被任意修改,通常将类中成员属性用private进行修饰。

被private修改的成员属性,只能在类中访问,跳出本类后,就无法直接访问。

此时,其它类要对该成员变量进行操作,则通常要用到“设置setter”和“读取getter”操作。


那些,什么是stter和getter呢???先看以下示例。

 

实例1:

如下,study包中,创建一个Job类

Job类中,jobName为private属性。先使用setter方式进行设置,再用getter进行获取。

setter方式用于外部调用时,传递值给name。

getter方式用于外部调用时,获取name的值。

package study;        //设置一个包
//创建一个类
public class Job {    
    //类中的属性为private私有
    private String jobName;        
    //设置一个public方法,用于外部设置jobName值。
    //形参name为String类型,外部调用时,将实参值传给name,再赋值给jobName,返回值类型为空
    public void setJobName(String name){
        jobName=name;
    }
    //设置一个public方法,用于外部访问jobName值。
    //上一步,外部调用set方法时,将实参值传给了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:

当setter和getter方法中的形参名与private修饰的变量名一致时,需要用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。
    }
}

输出结果:

警察

 

实例3: 

可以将setter和getter两个合二为一。赋值后,直接返回所赋的值。如下

package javastudy;

public class setgetTest {

    public static void main(String[] args) {
        Job z =new Job();
        z.setJobName("城管");
        z.show();
    }
}

class Job{
    private String jobName;
    public String setJobName(String name){    //set方法赋值,同时返回set所赋的值
        jobName=name;    
        return jobName;
    }
    public void show(){
        System.out.println(jobName);
    }
}    

输出结果:

城管

 

 

 

总结:

访问类中的private变量时,才用到setter和getter。

设置,setter:返回值为空void,有参数,形参名与private变量名一致时要加this.

获取,getter:无参数,返回值及返回类型,与获取的private变量名一致。

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值