面向对象编程有三大特征:封装、继承和多态
访问修饰符可以控制属性的访问范围
public:表示公共访问级别,可以被任何类访问。
protected:表示受保护访问级别,可以被类本身、子类和同一包中的类访问。
default(缺省):表示默认访问级别,即如果没有使用访问修饰符,默认是此级别,可以被同一包中的类访问。
private:表示私有访问级别,只能在类内部访问。
封装介绍
封装 (encapsulation) 就是把抽象出的数据 [属性] 和对数据的操作 [方法] 封装在一起,数据被保护在内部,程序的其他部分只有通过被授权的操作 [方法] ,才能对数据进行操作。
换句话说,方法封装是将一些有共性的或多次被使用的代码提取到一个方法中,供其他地方调用。
封装的好处
避免代码冗余容易维护,隐藏代码实现的细节。
封装的实现步骤
1) 将属性进行私有化【不能直接修改属性】
2) 提供一个公共的 set()方法,用于对属性判断并赋值
3) 提供一个公共的 get()方法,用于获取属性的值
//封装案例,要求不能随便查看人的年龄隐私,并对设置的年龄进行合理的验证。年龄合理就设置,否则默认 //年龄必须在1-120,年龄不能直接查看 public class Encapsulation01 { public static void main(String[] args) { Person p = new Person(); p.name = "马铃薯"; p.setAge(26); System.out.println("姓名:" + p.name + "\t年龄:" + p.getAge()); } } class Person{ //名字是公共的 public String name; //年龄是私有的,private修饰符表示只能在当前类内访问 private int age; //创建get()方法,用于对属性判断并赋值 public int getAge() { return age; } //创建set()方法,用于获取属性的值 public void setAge(int age) { if(age >= 1 && age <= 120){ this.age = age; }else{ System.out.println("年龄设置不合理,需要在 1-120 之间!"); this.age = 0; } } }
构造器 与 set()方法相结合
构造器主要是完成对新对象的初始化,而 get() 和 set()方法则是完成对属性的获取和赋值。
public class Encapsulation02 { public static void main(String[] args) { Person2 p2 = new Person2("马铃薯", 26); System.out.println("姓名:" + p2.name + "\t年龄:" + p2.getAge()); //姓名:马铃薯 年龄:26 p2.name = "任先生"; p2.setAge(18); System.out.println("姓名:" + p2.name + "\t年龄:" + p2.getAge()); //姓名:任先生 年龄:18 } } class Person2{ public String name; private int age; //构造方法 public Person2(String name, int age) { this.name = name; this.age = age; } //get() 和 set()方法 public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
标签:p2,封装,name,16,age,访问,面向对象编程,public From: https://www.cnblogs.com/REN-Murphy/p/17637700.html