JAVA学习之封装篇(三)

本文是笔者学习JAVA的一些笔记。

Posted by 南三号 on August 24, 2017

一.概念

将类的某些信息隐藏在类的内部,不允许外部直接访问,而通过类所提供的方法来进行操作。

二.封装三部曲

  • 修饰符private/protected
  • 添加操作属性的setter/getter方法
  • 方法中加入属性控制语句

三.包

包即文件夹,下又可再分,“ . ” 区分层次

  • 包的定义:package关键字

    package + <包名>
    //定义一个movie
    package movie;
    //定义一个movie包下的music包
    package movie.music;//包名小写
    
  • 包的引用:import关键字

    import + <包名> + '.' + <类名>;
    //调用movie包下的music包中的lyrics类
    import movie.music.lyrics;
    

四.访问修饰符

  • 访问规则

访问修饰符 本类 同包 子类 其他包
private      
默认    
protected  
public

五.this指针

代表当前对象,常在类中使用。 例如:

public setName(name){
  this.name=name
}

六.内部类

理解:

定义在类a中的类b,不让其他类比如类c使用这个类b,相应的类a叫做类b的外部类。

使用方法:

//外部类HelloWorld
public class HelloWorld {
    // 内部类Inner,类Inner在类HelloWorld的内部
    public class Inner {
        //类inner的属性和方法
	}
	public static void main(String[] args) {
        // 创建外部类对象
		HelloWorld hello = new HelloWorld();
        // 创建内部类对象
		Inner i = hello.new Inner();
	}
}

类别

  • 成员内部类

    相当于一个成员变量,可以访问外部类的任意访问控制符。

  • 静态内部类

    只可以访问外部类的静态成员,创建对象不需要外部类对象,可以直接创建。

  • 方法内部类

    方法内部类定义在外部类的一个方法中,只有在该方法内部可见,且只在该方法内部使用,因此方法内部类不能用访问控制符和static修饰。

  • 匿名内部类

    需要继承至一个父类,或者实现一个接口,并且需要实现接口或者父类的所有抽象方法。