百战卓越班学员学习经验分享:JAVA[面向对象]封装

北京尚学堂|百战卓越班学员学习经验分享:JAVA[面向对象]封装

来自尚学堂百战卓越班学员知乎Balmy的学习分享。

封装

定义:

- 封装:对代码细节的隐藏,只对外提供一个接口提高了系统的可扩展性,可维护性,不再关注内部实现细节,更多的关注具体的功能栏

  • a)使用private修饰属性 ; 实现属性私有化 ; 属性仅在当前类中可见a.1)根据情况提供属性的公有取值赋值方法,(set/get)a.2)当方法内部的局部变量和成员变量同名时可以使用使用 this关键字 区分成员变量和局部变量a.3)封装可以提高数据的安全性和规范性a.4)封装可以控制数据是否隐藏,需要隐藏不提供set/get方法即可a.5)boolean类型的成员变量的get方法体现为:is变量名
public class Person {
private String name;
private String gender ;
private int age;
public void setName(String name){
this.name = name;
}
//定义一个方法 返回当前对象的name属性值
public String getName(){
return name;
}
public void setGender(String gender){
//如果性别是男或者女 那么 正常赋值

if(gender.equals("男")|| gender.equals("女")){
this.gender=gender;
}else{
//如果性别不是男也不是女 那么给一个默认值为 男
this.gender="男";
}
}
//定义一个方法 返回当前对象的gender属性
public String getGender(){
return gender;
}
public void setAge(int age) {
if (age > 0 && age < 100) {
this.age = age;
}
}
//定义一个方法 返回当前对象对的age属性值
public int getAge(){
return age;
}
public void showInfo(){
System.out.println(name+gender+age);
}
}

测试代码

package encapsulationDemo;
public class TestPerson {
public static void main(String[] args) {
//获得Person对象
Person p=new Person();
p.setName("旋涡刘能");
p.setGender("男");
p.setAge(56);
p.showInfo();
//仅仅需要查看人的属性 怎么办?
System.out.println(p.getAge());
System.out.println(p.getGender());
System.out.println(p.getName());
}

}

“我们相信人人都可以成为一个IT大神,现在开始,选择一条阳光大道,助你入门,学习的路上不再迷茫。这里是北京尚学堂,初学者转行到IT行业的聚集地。"


分享到:


相關文章: