package com.msb.democlass;
/**
1.类的组成:属性、方法、构造器、代码块(普通块、静态块、构造块、同步块)、内部类(成员内部类、局部内部类)
2.内部类
(1)成员内部类:静态、非静态
(2)局部内部类
位置:方法内、块内、构造器内
*/
public class DemoClass {
//1.属性
int age = 20;
//2.方法
public void a(){
System.out.println("这是方法a");
{
System.out.println("这是一个普通块"); //6.普通构造块
}
//7.局部内部类
class A{
int age = 30;
public void method(){
System.out.println("局部内部类——成员方法"+age);
System.out.println("局部内部类——成员方法"+this.age);
System.out.println("外部类——成员方法"+DemoClass.this.age);
}
}
//局部内部类,方法调用
A a = new A();
a.method();
}
//3.构造器:第三优先执行
public DemoClass() {
}
public DemoClass(int age) {
this.age = age;
}
//5.构造块:第二优先执行
{
System.out.println("这是一个构造块");
}
//4.静态构造块:最先执行
static{
System.out.println("这是一个静态构造块");
}
//1.1成员内部类
class B{
int age = 30;
public void method(){
System.out.println("成员内部类——成员方法"+age);
System.out.println("成员内部类——成员方法"+this.age);
System.out.println("外部部类——成员方法"+DemoClass.this.age);
}
}
//1.2静态成员内部类
static class C{
int age = 30;
public void method(){
System.out.println("静态成员内部类——成员方法"+age);
System.out.println("静态成员内部类——成员方法"+this.age);
// System.out.println("外部部类——成员方法"+DemoClass.this.age);
}
}
//2.1局部内部类:访问到的成员变量,必须被final修饰
public void method(){
final int num = 10;//final可以省略不写,但是当局部内部类中有方法访问外部方法中的局部变量时,局部变量默认是final类型的,不可再被修改
class A{
//num = 20;
public void a(){
//num = 20;
}
}
}
//2.2 如果某个类在项目中只使用一次,可以是内部类
public Comparable method2(){
class B implements Comparable{
@Override
public int compareTo(Object o) {
return 100;
}
}
return new B();
}
//3.匿名内部类
public Comparable method3(){
return new Comparable(){
@Override
public int compareTo(Object o) {
return 100;
}
};
}
//局部内部类
public void method4(){
Comparable com = new Comparable(){
@Override
public int compareTo(Object o) {
return 100;
}
};
System.out.println(com.compareTo("abc"));
}
}
class Test{
public static void main(String[] args) {
DemoClass d = new DemoClass();
d.a();//通过成员方法,局部内部类方法
//创建静态成员内部类
DemoClass.C c = new DemoClass.C();
c.method();
//创建非静态成员内部类对象
DemoClass.B b = d.new B();
b.method();
}
}
java类组成,非静态成员内部类的实例化【外部类.内部类 a = 外部类实例.new 内部类()】
最新推荐文章于 2024-04-23 00:23:05 发布
本文详细介绍了Java中的内部类,包括成员内部类、局部内部类、静态成员内部类和匿名内部类的定义、使用及特点。通过实例展示了它们在方法中创建和调用的方法,以及对外部类和局部变量的访问规则。同时,文章还探讨了内部类在代码复用和简化设计中的作用。
摘要由CSDN通过智能技术生成