Java面向对象之封装
封装:
通俗理解:在不想让外人看见自己所定义的内容,但是你可以使用(调用),怎么调用呢?通过先设置(set)下属性或者方法内容,然后你必须获取(get)下才可以调用。
1、封装:隐藏实现细节,提供公共的访问方式;
①、好处:
隐藏实现细节,提供公共的访问细节;
提高代码的复用性;
提高代码的安全性;
②、设计原则:
把不想让外界知道的实现细节给隐藏起来,把属性隐藏,提供公共的访问方式。
③、体现:
类、方法、private修饰成员变量
2、private 关键字(仅仅是封装的体现形式):
①、私有的意思,权限修饰符,可以修饰成员变量和成员方法;
②、特点:
被private修饰过的成员只能在本类中访问;
③、应用:
类中不需要对外提供的内容都需要私有化,包括属性和方法;
以后再描述事物,属性都私有化。
对成员变量的访问:
赋值(设置 set )、取值(获取 get)
3、this关键字:
在成员变量面前加上this 来区别成员变量和局部变量;
哪个对象调用this所在的方法,this就代表哪个对象。
例如:比较两个人是否同龄:
package com.oracle.demo02;
public class Person {
private String name;
private int age;
public void setName(String n){
name=n;
}
public String getName(){
return name;
}
public void setAge(int a){
if(a>=0&&a<=130){
age=a;
}else{
age=0;
}
}
public int getAge(){
return age;
}
public void speak(){
System.out.println("我叫"+name+",今年"+age+"岁了");
}
//比较两个人是否是同龄人
public boolean compare(Person p){
return this.age==p.age;
}
}
package com.oracle.demo02;
public class Demo01 {
public static void main(String[] args) {
Person p1=new Person();
p1.setAge(18);
Person p2=new Person();
p2.setAge(19);
boolean flag=p1.compare(p2);
System.out.println(flag);
}
}
4、Eclispe中快速私有的方法:
定义完属性后,鼠标右键--->Source----->Generate Getters and Setters----->右侧Select All 。