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