java的get和set_Java中get()和set()作用

一、前言

在程序的设计中,我们普遍的定义一个private变量,然后为这个变量加上get() 、set()方法,那为何不直接定义一个public变量呢?

很多人是这样回答的:

1、关系到安全性的问题,貌似具有说服力,使用pubilc变量有何不安全呢?使用get()和set()安全在哪里呢?(假如你开发一个类给别人用,人家只要输入.get就能知道所有的属性。)

2、有些人说封装性,但是变量本身就是封装在类里面的呀!

其实大部分人都是人云亦云,说什么安全性和封装性,只要学java的人都知道这些名词。

我的理解它的更多的作用是数据输入输出的控制。

二、get()和set()作用

(1)、安全性

程者可以选择只读或者只写 或者读写都行。

public class Circle {

private double radius;

private double pai = 3.14;

public double getPai() {

return pai;

}

public void setRadius(double radius) {

this.radius = radius;

}

/*** 计算周长*/

public double getC() {

return 2*pai*radius;

}

}

定义了一个圆类,定义了属性半径和pai,半径只提供写的方法,但不提供读,而pai只提供读,但不能写,并提供了一个计算周长的方法getC。在实际项目中,对一些类的设计时,严谨的设计是要考虑哪些类是只读或是只写的。

(2)、灵活性

如在定义一个Person类时,设置一个属性name,当取名字的时候,不只是显示名字,代码如下:

public class Person {

private String name;

public String getName() {

return "我的名字叫" + name;

}

public void setName(String name) {

this.name = name;

}

}

(3)、封装性

(4)、健壮性

其实java中对外提供访问方式,就是因为可以在访问方式中加入逻辑判断等语句,对访问的数据进行操作。提高代码的健壮性。

简单小栗子:

class Person

{

private int age;

public void setAge(int a)

{

if(a>0 && a<130)

{

age = a;

speak();

}

else

System.out.println("feifa age");

}

public int getAge()

{

return age;

}

private void speak()

{

System.out.println("age="+age);

}

}

class PersonDemo

{

public static void main(String[] args)

{

Person p = new Person();

//p.age = -20;

p.setAge(-40);

//p.speak();

}

}

总结

更多的用法只能在使用中多体会了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值