Java中get()和set()的方法使用

字面意思

set是设置的意思,而get是获取的意思,顾名思义,这两个方法是对数据进行设置和获取用的。而且,在类中使用set和get方法时,都是在set和get后面跟上一些特定的词来形成特定意思的方法名,比如setage()和getage(),表示设置年龄和获取年龄。

JAVA面向对象编程中的封闭性和安全性

封闭性即对类中的域变量进行封闭操作,即用private来修饰他们,如此一来其他类则不能对该变量访问。这样我们就将这些变量封闭在了类内部,这样就提高了数据的安全性。
当我们想要操作这些域变量怎么办呢?:

  1. 第一种即通过public方式的构造器(或称构造函数),对象一实例化就对该变量赋值。
  2. 第二种就是通过上面提到的set和get方法
    举一个特定的例子,定义一个Person类,该类中有name、age这两个私有域变量(private),然后我定义setname()、getname()、setage()、getage()这四个方法,通过这四个方法来实现对name和age的操作。
    这样一来,我不用直接对Person类中的域变量操作,而是通过set和get方法间接地操作这些变量,这样就能提高域变量的安全性,同时又保证了域变量的封装型。

set和get的使用场景

set和get方法的使用场景,一般来说set和get方法都是对私有域变量进行操作的,所以大多数都是使用在包含特定属性的类实体中。 现在你明白set和get方法了吧,其实这两个方法只是类中的setxxx和getxxx方法的总称。

使用前提:当要访问被private封装的属性时
提供访问方式的原因: 之所以用private封装,又对外提供访问方式(set get),是因为可以在访问方式中加入逻辑判断等语句,对访问的数据进行操作,提高代码的健壮性。

例子

博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片.

// 计算图形面积
public class Shape{
public static double PI =3.14;                                                    
private int size;                                     
public double s;                                      
public double l;
public double r;                                      
                                                      
public void setSize(int size){   // 形参传入时,要使在size的基础上/1000        
    this.size = size/1000;       //赋值给全局的size                     
}                                                     
                                                      
public int getSize(){                          
    return size;                                      
}                                                                                                                                   
//调用
public class Test{
 public static void main(String[] args) {       
        //要调用Shape的方法
        Shape s = new Shape();
        s.setSize(5000);   //传入参数
        System.out.println(s.getSize());  //打印得到的size

补充:Java修饰符权限

访问包位置privateprotectedpublic
本类可见可见可见
同包其他类或子类不可见可见可见
其他包的类或子类不可见不可见可见

例:在项目中的com.lzw包下创建AnyClass类,该类使用默认的访问权限。

package com.lzw;
class AnyClass{
	public void doString(){
		....//方法体
	}
}

在上述代码中,由于类的修饰符为默认修饰符,即只有一个包内的其他类和子类可以对该类进行访问,而AnyClass类中的doString()方法却又被设置为public访问权限,即使这样,doString()方法的访问权限依然与AnyClass类的访问权限相同,因为Java语言规定,类的权限设定会约束类成员的权限设定。所以上述代码等同于

package com.lzw;
class AnyClass{
	void doString(){
		....//方法体
	}
}
  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值