封装
概念
指隐藏对象的属性和实现细节,仅对外提供公共访问方式
好处
将变化隔离
便于使用
提高重要性
提高安全性
举例
 一个人去电脑店修电脑,修电脑的人只需要知道电脑店的人可以给他修好,但是具体的修的细节不需要那个人知道,那个细节就是封装的内容,用private
private
私有,权限修饰符,用于修饰类中的成员(成员变量、成员函数)
私有只在本类中有效
目的是不提供给外类使用,仅自己内部用
注意:私有仅仅是封装的一种表现形式
1 class Person 2 { 3 private int age; 4 void speak() 5 { 6 System.out.println("age="+age); 7 } 8 } 9 class PersonDemo 10 { 11 public static void main(String[] args) 12 { 13 Person p = new Person(); 14 p.age=20; //无法访问,因为前面有private类 只有在本类中有效 15 } 16 }
将age私有化后,类以外即使建立了对象也不能直接访问,但是人应该有年龄,就需要在Person类中提供对应访问age的方式
解决方法一
1 class Person 2 { 3 private int age; 4 5 public void setAge(int a){ 6 age=a; 7 } 8 9 void speak() 10 { 11 System.out.println("age="+age); 12 } 13 } 14 class PersonDemo 15 { 16 public static void main(String[] args) 17 { 18 Person p = new Person(); 19 p.setAge(20); //可以输出 20 } 21 }
之所以对外提供访问方式,就因为可以在访问方式中加入逻辑判断等语句,对访问的数据进行操作,提高代码健壮性
1 class Person 2 { 3 private int age; 4 5 public void setAge(int a){ 6 if(a>0){ 7 age=a; 8 speak(); 9 }else{ 10 System.out.pprintln("非法年纪"); 11 } 12 } 13 14 void speak() 15 { 16 System.out.println("age="+age); 17 } 18 } 19 class PersonDemo 20 { 21 public static void main(String[] args) 22 { 23 Person p = new Person(); 24 p.setAge(20); //可以输出 25 } 26 }
内存解析

注意:a只是赋值给age而不指向堆,哪个对象在运行值就赋给谁
解决方法二
1 class Person 2 { 3 private int age; 4 5 public void getAge(int a){ 6 return age; 7 } 8 9 void speak() 10 { 11 System.out.println("age="+age); 12 } 13 } 14 class PersonDemo 15 { 16 public static void main(String[] args) 17 { 18 Person p = new Person(); 19 speak(); //可以输出 20 } 21 }
    👣不忘初心 方得始终👣 👌WCY
                    
                
                
            
        
浙公网安备 33010602011771号