您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
【第5章:面向对象基础】_封装性
发布时间:2020-11-25 14:44:45编辑:雪饮阅读()
private
没有经过private修饰的name属性
class Person{
String name;
int age;
}
public class Hello{
public static void main(String args[]){
Person per1 = null;
per1 = new Person();
System.out.println(per1.name);
System.out.println(per1.age);
}
}
经过private修饰的name属性
class Person{
private String name;
int age;
}
public class Hello{
public static void main(String args[]){
Person per1 = null;
per1 = new Person();
System.out.println(per1.name);
System.out.println(per1.age);
}
}
第一个正常输出,第二个经过private修饰的name属性即便在编译过程都会报错。
private修饰的属性只可以在类内部被访问,比如前期我们定义的tell那个public修饰的方法中可以访问。
不仅仅是访问,修改也是同样的只能在类的内部修改。
class Person{
private String name;
private int age;
}
public class Hello{
public static void main(String args[]){
Person per1 = null;
per1 = new Person();
per1.name="kasumi";
per1.age=18;
}
}
getter与setter
对于上面private修饰的属性进行修改需要使用getter与setter方法,算是一个规范吧,也可以用普通的public修饰的方法进行操作。
class Person{
private String name;
private int age;
public void setName(String n){
name=n;
}
public void setAge(int a){
age=a;
}
public int getAge(){
return age;
}
public String getName(){
return name;
}
}
public class Hello{
public static void main(String args[]){
Person per1 = null;
per1 = new Person();
per1.setName("kasumi");
per1.setAge(18);
System.out.println(per1.getName());
System.out.println(per1.getAge());
}
}
类中的this
类中对于属性的调用可以直接写属性名,也可以用this做前缀来调用属性(相当于显式强调是从当前类中调用)
class Person{
private String name;
private int age;
public void setName(String n){
name=n;
}
public void setAge(int a){
age=a;
}
public void tell(){
System.out.println("姓名:"+this.name+",年龄:"+age);
}
}
public class Hello{
public static void main(String args[]){
Person per1 = null;
per1 = new Person();
per1.setName("kasumi");
per1.setAge(18);
per1.tell();
}
}
关键字词:java,封装性,private,getter,setter