成员属性封装
在类之中的组成就是属性与方法,一般而言方法都是对外提供服务的,所以不会进行封装处理,而对于属性由于需要较高的安全性,所以需要保护,进行采用封装对属性保护。
class Person{ //定义一个类
String name; //人员的姓名
int age ; //人的年龄
public void tell(){
System.out.println("姓名:" + name + ",年龄:" + age);
}
}
public class JavaDemo{ //主类
public static void main (String args[]{
Person per = new Person (); //声明并实例化对象
per.name = "张三“;//在类外部修改属性
per.age = 18; //在类外部修改属性
per.tell(); //进行方法的调用
}
无封装处理,外部可以直接调用。为解决这一问题,使用private关键字对属性封装处理
class Person{ //定义一个类
private String name; //人员的姓名
private int age ; //人的年龄
public void tell(){
System.out.println("姓名:" + name + ",年龄:" + age);
}
}
public class JavaDemo{ //主类
public static void main (String args[]{
Person per = new Person (); //声明并实例化对象
per.name = "张三“;//在类外部修改属性
per.age = 18; //在类外部修改属性
per.tell(); //进行方法的调用
}
运行结果
报错,无法访问private的属性
属性封装外部无法访问。对外部不可见,但是,对类内部是可见的。
外部想访问封装属性Java开发标准
设置或取得属性使用setXxx(),getXxx()方法
class Person{ //定义一个类
private String name; //人员的姓名
private int age ; //人的年龄
public void tell(){
System.out.println("姓名:" + name + ",年龄:" + age);
}
public void setName(String n){
name = n;
}
public void setAge(int a){
if (a>=0){
age = a; //年龄>0
}
}
public String getName(){
return name;
}
public int getAge(){
return age;
}
}
public class JavaDemo{ //主类
public static void main (String args[]{
Person per = new Person (); //声明并实例化对象
per.setName ( "张三");//在类外部修改属性
per.setAge (18); //在类外部修改属性
per.tell(); //进行方法的调用
}
类中所有属性必须使用private封装,属性提供访问需要的setter和getter方法