首页 > 代码库 > Java学习笔记2——封装

Java学习笔记2——封装

封装

  1. 将类的某些信息隐藏在内部,通过该类提供的方法实现对隐藏信息的操作和访问。好处:1)只能通过规定的方法访问数据;2)隐藏类的实例细节,方便修改和实现。封装的实习步骤:wKioL1RLnVjz7gt8AAD2ra7zZ6Y799.jpg

public class Telphone{
   private float screen;
   private float cpu;
   private float mem;
  
   public float getScreen(){
      return screen;
}
   public void setScreen(float newScreen){
       screen = newScreen;
}
   public Telphone(){
      System.out.println(‘无参构造方法执行‘);
}
}
public class IntialTelphone{
   public static void main(String[] args){
     Telphone phone = new Telphone();
     
     Telphone phone2 = new Telphone(5.0f,1.4f,2.0f);
     phone2.setScreen(6.0f);
     System.out.println(‘screen:‘+phone2.getScreen());
}
}

Java中的包

  1. 包的作用:管理Java文件、解决同名冲突

  2. 定义包:  package 包名,必须放在程序的第一行

  3. 一个 Java 源文件中至多包含一条 package 语句

Java中的访问修饰符

  1. 访问修饰符:private public protected

wKiom1RLnr3D561KAAC0QIKu7kU551.jpg

Java中的this关键字

  1. this关键字代表当前对象,this.属性   操作当前对象属性,this.方法调用当前对象方法

  2. 封装对象属性时,经常用this

Java中的内部类

  1. 内部类:内部类( Inner Class )就是定义在另外一个类里面的类。与之对应,包含内部类的类被称为外部类。

  2. 内部类作用:1. 内部类提供了更好的封装,可以把内部类隐藏在外部类之内,不允许同一个包中的其他类访问该类 ;2. 内部类的方法可以直接访问外部类的所有数据,包括私有的数据 ;3. 内部类所实现的功能使用外部类同样可以实现,只是有时使用内部类更方便

//外部类HelloWorld
public class HelloWorld {
    
    // 内部类Inner,类Inner在类Outer的内部
    public class Inner {
        
  // 内部类的方法
  public void show() {
   System.out.println("welcome to imooc!");
  }
 }
    
 public static void main(String[] args) {
        
        // 创建外部类对象
  HelloWorld hello = new HelloWorld();
        // 创建内部类对象
  Inner i = hello.new Inner();
        // 调用内部类对象的方法
  i.show();
 }
}

3. 内部类种类:成员内部类 、静态内部类 、方法内部类 、匿名内部类

4. 成员内部类: 定义了成员内部类后,必须使用外部类对象来创建内部类对象,而不能直接去 new 一个内部类对象,即:内部类 对象名 = 外部类对象.new 内部类( );   

wKiom1RLnzniZ3XWAAL8c4ODkqg543.jpg

注意:外部类是不能直接使用内部类的成员和方法滴,可先创建内部类的对象,然后通过内部类的对象来访问其成员变量和方法。

wKioL1RLn8eBRp7CAAG2FSX1LC0679.jpg

5. 静态内部类是 static 修饰的内部类。1) 静态内部类不能直接访问外部类的非静态成员,但可以通过 new 外部类().成员 的方式访问 ;2)如果外部类的静态成员与内部类的成员名称相同,可通过“类名.静态成员”访问外部类的静态成员;如果外部类的静态成员与内部类的成员名称不相同,则可通过“成员名”直接调用外部类的静态成员;3)创建静态内部类的对象时,不需要外部类的对象,可以直接创建 内部类 对象名= new 内部类()

wKioL1RLoHDxbrdsAALYSv08Mbc312.jpg

6. 方法内部类:内部类定义在外部类的方法中,方法内部类只在该方法的内部可见,即只在该方法内可以使用。

//外部类
public class HelloWorld { 
    private String name = "爱慕课"; 
    // 外部类中的show方法
    public void show() { 
  // 定义方法内部类
  class MInner {
   int score = 83;
   public int getScore() {
    return score + 10;
   }
  }
        
  // 创建方法内部类的对象
        MInner mi = new MInner();
        // 调用内部类的方法
        int newScore= mi.getScore();
  System.out.println("姓名:" + name + "\n加分后的成绩:" + newScore);
 }   
 // 测试方法内部类
 public static void main(String[] args) {   
  // 创建外部类的对象
        HelloWorld mo = new HelloWorld(); 
        // 调用外部类的方法
  mo.show();
 }
}

7. 匿名内部类:没有名字的内部类,通常此类型内部类只使用一次。匿名内部类在创建时,必须作为 new 语句的一部分来声明,这就要采用另一种特殊形式的 new 语句。

wKiom1RLoSKwLy6hAAJMEWvJtfY667.jpg

Java学习笔记2——封装