类的五大成员:属性、方法、构造方法、代码块、内部类
在一个类的里面,再定义一个类。
举例:在A类的内部定义B类,B类就被称为内部类
package Neibulei;
import Interface.Person;
public class Car {
private String Carname;
private int Carage;
private String Carcolor;
class engine
{
private String name;
private int age;
public engine(String name, int age) {this.name = name;this.age = age;}
public engine() {}
public String getName() {return name;}
public void setName(String name) {this.name = name;}
public int getAge() {return age;}
public void setAge(int age) {this.age = age;}
}
public Car() {}
public Car(String carname, int carage, String carcolor) {
Carname = carname;
Carage = carage;
Carcolor = carcolor;
}
public String getCarname() {return Carname;}
public void setCarname(String carname) {Carname = carname;}
public int getCarage() {return Carage;}
public void setCarage(int carage) {Carage = carage;}
public String getCarcolor() {return Carcolor;}
public void setCarcolor(String carcolor) {Carcolor = carcolor;}
public void show (){
System.out.println(this.Carname);
engine e = new engine();
System.out.println(e.name);
}
}
package Neibulei;
public class Main {
public static void main(String[] args) {
Car c = new Car();
}
}
Java 的内部类是定义在其他类内部的类。内部类可以访问包含它的外部类的成员,包括私有成员。它提供了一种组织代码的方式,可以将相关的类组织在一起。
成员式内部类
局部式内部类
public class OuterClass {
private int outerVar;
public class InnerClass {
public void display() {
System.out.println("OuterVar from OuterClass: " + outerVar);
}
}
}
写在成员位置的,属于外部类的成员。
获取成员内部类对象
外部类名.内部类名对象名=外部类对象.内部类对象;
//我要创建的是谁的对象?
//内部类的对象
Outer.Inner oi = new outer().new Inner();
public class OuterClass {
private static int staticVar;
public static class StaticInnerClass {
public void display() {
System.out.println("StaticVar from OuterClass: " + staticVar);
}
}
}
外部类名.内部类名 对象名 = new 外部类名.内部类名();
Outer.Inner oi = new Outer.Inner();
外部类名.内部类名.方法名();
public class OuterClass {
public void outerMethod() {
final int localVar = 10;
class LocalInnerClass {
public void display() {
System.out.println("LocalVar from OuterMethod: " + localVar);
}
}
LocalInnerClass localInner = new LocalInnerClass();
localInner.display();
}
}
public interface MyInterface {
void myMethod();
}
public class OuterClass {
public void createAnonymousInner() {
MyInterface anonymousInner = new MyInterface() {
@Override
public void myMethod() {
System.out.println("Implementation of MyMethod in Anonymous Inner Class");
}
};
anonymousInner.myMethod();
}
}
package Niming;
public interface Swim {
public abstract void swim();
}
package Niming;
public class Test {
public static void main(String[] args) {
new Swim(){
@Override
public void swim() {
System.out.println("重写了游泳的方法");
}
};
}
}
如果是接口
那么就是实现关系
,如果是类
那么就是继承关系
new 类名或者接口名() {
重写方法;
};
内部类在设计模式、事件处理、图形用户界面等场景中常常发挥重要作用,它提供了更灵活的封装和组织代码的方式。但在使用时需要注意避免过度嵌套和过于复杂的结构。