Java入门(二)chapter 2 - java中的封装

版权声明: https://blog.csdn.net/qq_26386707/article/details/78399077

Java入门(二)java中的封装

2017/9/26

 

 by

CHENJING DING



CHAPTER 2 – java中的封装


面向对象的三大特性:

封装,继承,多态;

封装

定义

将该类的某些信息隐藏在类的内部,不允许外部程序直接访问,必须通过该类提供的方法来实现对隐藏信息的操作和访问

步骤

1.     将成员变量的修饰符设为private

2.     创建public getter/setter方法用于属性的读写;

3.     在getter/setter方法中加入属性的控制语句,对属性的合法值进行判断;

Java中的包

解决同名文件冲突,不同的包区分相同类名的java文件

定义

Package 包名

1.     必须放在java源程序第一行

2.     包名间可以使用“.”隔开,比如系统中包:Java.功能.类

Java.lang.类:包含java语言基础的类

Java.util.类:包含java语言中各种工具类

Java.io.类:包含输入,输出相关功能的类

3.     包的命名规范是全小写字母拼音

使用

Import 包名;

Import 包名.*;// 导入该包子目录下的所有java类

Java中的访问修饰符

访问修饰符是修饰属性和方法的访问范围

Java中的this关键字

this 表示当前对象;this.属性访问当前对象的属性;

Java中的内部类

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

使用内部类的原因

1. 内部类提供了更好的封装,可以把内部类隐藏在外部类之内,不允许同一个包中的其他类访问该类。

2. 内部类的方法可以直接访问外部类的所有数据,包括私有的数据

3. 内部类所实现的功能使用外部类同样可以实现,只是有时使用内部类更方便

内部类的种类

可分为4种,成员内部类,静态内部类,方法内部类,匿名内部类;

成员内部类

1.     内部类可以直接访问外部类中的数据,而不受访问控制符的影响,如直接访问外部类中的私有属性;

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

3.     外部类不能直接使用内部类的成员和方法,需要创建内部类的对象,然后通过内部类的对象来访问其内部类的成员变量和方法;

4.     如果外部类和内部类具有相同的成员变量或方法,内部类默认访问自己的成员变量或方法,如果要访问外部类的成员变量,可以使用 this 关键字。见下面的程序2;

//程序1 :外部类HelloWorld
publicclass HelloWorld {
 
// 内部类Inner,类Inner在类HelloWorld的内部
publicclass Inner {
 
// 内部类的方法
publicvoid show() {
System.out.println("welcometo imooc!");
}
}
 
publicstatic void main(String[] args) {
 
// 创建外部类对象
HelloWorldhello = new HelloWorld();
// 创建内部类对象
Inneri = hello.new Inner();
// 调用内部类对象的方法
i.show();
}
}
//程序2:


静态内部类

静态内部类是 static 修饰的内部类;

与前文中提到的静态方法类似:

1.     静态内部类不能直接访问外部类的非静态成员,需要通过外部类的对象来访问;

2.     如果外部类的静态成员与内部类的成员名称相同,可通过“类名.静态成员”访问外部类的静态成员;如果外部类的静态成员与内部类的成员名称不相同,则可通过“成员名”直接调用外部类的静态成员;

3.     创建静态内部类的对象时,不需要外部类的对象,可以直接创建;

内部类 对象名 = new 内部类();


方法内部类

内部类定义在“外部类的方法”中;

1.只在该方法中可见

2.不能使用访问控制符和static修饰符;

猜你喜欢

转载自blog.csdn.net/qq_26386707/article/details/78399077