java 成员类_Java类的五大成员之一——内部类
一. 類的五大成員:
屬性、構造方法、一般方法、塊、內部類
這篇主要描寫內部類。
下面代碼演示類的結構:
package com.company.project.test.t41;
import java.sql.Struct;
import org.omg.CORBA.PUBLIC_MEMBER;
public class Demo {
//1屬性
String name;
//2.構造方法
public Demo() {
}
//3.方法
public void funOuter1() {
System.out.println("外部類方法");
}
//4.塊
{
}
//5.內部類
//5.1成員內部類
class Inner{
public void fun1() {
name = "";
funOuter1();
}
}
//5.2靜態內部類
static class StaticClass{
}
//5.3匿名內部類
//通過接口創建匿名內部類
Runnable runnable = new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
}
};
//通過類創建匿名內部類
Thread thread = new Thread() {
public void run() {
}
};
//5.4局部內部類
public void funOuter2() {
//作用范圍僅限于所屬方法,
class A{
}
A a = new A();
}
}
二、內部類
內部類分為4種:成員內部類、靜態內部類、匿名內部類、局部內部類。
特點:可以共享外部類的成員(屬性,方法)
1.成員內部類
public class Demo {
//1屬性String name;
//3.方法public void funOuter1() {
System.out.println("外部類方法");
}
//5.內部類//5.1 成員內部類class Inner{
public void fun1() {
name = "";
funOuter1();
}
}
}
特點:要使用成員內部類的對象,外部類的對象必須存在。
實例化:
package com.company.project.test.t41;
public class Client {
public static void main(String[] args) {
//內部類的實例化
//5.1成員內部類
Demo.Inner inner = new Demo().new Inner();
}
2.靜態內部類
public class Demo {
//1屬性
String name;
//3.方法
public void funOuter1() {
System.out.println("外部類方法");
}
//5.內部類
//5.2靜態內部類
static class StaticClass{
}
}
特點:靜態內部類,把外部類當作特殊的包使用,所以實例化時new 后面的Demo不需要小括號(和成員內部類區別)。
實例化:
package com.company.project.test.t41;
public class Client {
public static void main(String[] args) {
//內部類的實例化
//5.2靜態內部類的實例化
//靜態內部類,把外部類當作特殊的包使用
Demo.StaticClass staticClass = new Demo.StaticClass();
}
}
3.匿名內部類
分為兩種:通過接口創建和類創建。
特點:簡化了一些臨時使用的類,小,方便,屬于臨時變量類。
創建和實例化在一起。
public class Demo {
//1屬性
String name;
//3.方法
public void funOuter1() {
System.out.println("外部類方法");
}
//5.內部類
//5.3匿名內部類
//通過接口創建匿名內部類
Runnable runnable = new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
}
};
//通過類創建匿名內部類
Thread thread = new Thread() {
public void run() {
}
};
}
4.局部內部類
特點:可以在方法中定義,并實例化,但使用地方僅局限在此方法中。
public class Demo {
//1屬性
String name;
//3.方法
public void funOuter1() {
System.out.println("外部類方法");
}
//5.內部類
//5.4局部內部類
public void funOuter2() {
//作用范圍僅限于所屬方法,
class A{
}
A a = new A();
}
}
總結
以上是生活随笔為你收集整理的java 成员类_Java类的五大成员之一——内部类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 线程安全_Java创建线程安全
- 下一篇: java美元兑换,(Java实现) 美元