您的位置:首页 > 编程语言 > Java开发

Java 内部类

2016-03-22 16:23 357 查看
1. 内部类的作用

2. Java成员内部类

3. java 静态内部类

4. java 中的方法内部类

5. Java继承关系

内部类的作用

1. 隐藏,提供更好的封装,不允许同一个包中的其他类访问该类。

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

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

- 内部类可以分为

1. 成员内部类

2. 静态成员内部类

3. 方法内部类

4. 匿名内部类

public class HelloWorld{
public class inner{ // 定义一个内部类
public void show(){ // 创建一个内部类方法
System.out.println("我爱中国");
}
}
public static void main(String[]args){
// 创建外部类对象
HelloWorld hello = new HelloWorld();
// 创建内部类对象
inner i =  hello.new inner();
// 调用内部类对象
i.show();
}
}


Java成员内部类

public class Outer {
// 外部类私有属性
private String name = "China";
int age = 20;
// 成员内部类
public class inner{
String name="我爱中国";
// 内部类中的方法
public void show(){
// 在内部类中使用类关键字this,区分内部类变量和外部类相同变量
System.out.println("外部类中的name:"+Outer.this.name);
System.out.println("内部类中的name"+name);
// 在内部类中可以直接访问外部类变量
System.out.println("外部类中的age:"+age);

}
}
// 测试成员内部类
public static void main(String[] args){
// 创建外部类对象
Outer O = new Outer();
// 创建内部类对象
inner inn = O.new  inner();
// 调用内部类对象的show方法
inn.show();
}
}


java 静态内部类

public class SOuter {
private int a = 99; //外部私有变量
static int b = 1;   //外部静态变量
// 静态内部类
public static class SInner{
int b = 2; // 内部类的变量
public void test(){
System.out.println("访问外部类的b:"+ SOuter.b); // 通过类名.静态成员名访问外部变量
System.out.println("访问内部类的b:"+ b);

}
}
public static void main(String [] args){
SInner si = new SInner();
si.test();
}
}


java 中的方法内部类

方法内部类就是定义在外部类的方法中的类,该类只能在方法内部使用,

注意:由于方法内部类不能在外部类的其他地方使用,因此方法类不能使用访问控制修饰符和static。

//外部类
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();

// 调用内部类的方法
mi.getScore();
int Newscore = mi.getScore();
System.out.println("姓名:" + name + "\n加分后的成绩:" + Newscore);
}

// 测试方法内部类
public static void main(String[] args) {

// 创建外部类的对象
HelloWorld mo = new HelloWorld();

// 调用外部类的方法
mo.show();
}
}


Java继承关系

class 子类 extends 父类 ,父类当中的变量如果是private,那么将不能继承。

Java方法的重写

如果子类对父类的方法不满意,可以重写父类的方法,调用时优先调用子类方法。

语言规则

a. 返回值类型

b. 方法名

c. 参数类型及个数

都要与父类相同,才叫重写。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: