为什么要在类中使用private将成员变量给私有化?
其实这就是private的作用之一,把数据变得更安全,那为什么会变安全呢?
请看下面的代码:
package Test3_5.OOP;
public class GirlFriend {
//属性
// 这里的private是私有的意思,定义为private的数据只能在本类被调用
//private主要目的为了保护数据
private String name;//成员变量
private int age;
private double height;
private double wight;
// 这里加一点 当成员变量name也就是在类下面的变量与局部变量name都有值时,这时sout(name)输出
//就是距离输出语句最近的变量,当然this也可以用来区分成员变量和局部变量
//对name进行赋值,这里定义的name就是局部变量
public void setName(String name){
this.name=name;
}
//对外提供name的属性
public String getName(){
return name;
}
//对age进行赋值
public void setAge(int age){
if (age>=18&&age<=50){
this.age=age;
}else {
System.out.println("非法数据");
}
}
//对外提供age的属性
public int getAge(){
return age;
}
//对身高进行赋值
public void setHeight(double height){
if (height>=100&&height<=250){
this.height=height;
}
else {
System.out.println("非法输入");
}
}
//对外提供height的属性
public double getHeight(){
return height;
}
//对wight进行赋值
public void setWight(int wight){
if (wight>=30&&wight<=150){
this.wight=wight;
}
else {
System.out.println("非法输入");
}
}
//对外提供wight的属性
public double getWight(){
return wight;
}
//行为
public void chiCu(){
System.out.println("生气!");
}
public void chiFan(){
System.out.println("点外卖~");
}
}
就是通过set()方法,对在测试类中传入的数据进行一次判断,如果正确,则通过set()进行赋值,
调用则是通过get()方法在测试类中进行调用。
package Test3_5.OOP;
public class GirlFriendTest {
public static void main(String[] args) {
GirlFriend gf=new GirlFriend();
gf.setName("小李");
gf.setAge(18);
gf.setHeight(168);
gf.setWight(43);
System.out.println(gf.getName());
System.out.println(gf.getAge());
System.out.println(gf.getHeight());
System.out.println(gf.getWight());
gf.chiCu();
gf.chiFan();
}
}
这里加一点 当成员变量name也就是在类下面的变量与局部变量name都有值时,这时sout(name)输出 就是距离输出语句最近的变量,当然this也可以用来区分成员变量和局部变量。
(纯新手,如有错误,各位大佬请指正~~)
(主要用于存储个人学习的过程)