Java中每个接口或类都来自不同的类名,无论是Java API中的类与接口还是自定义的类与接口,都需要隶属于某一个类包。
1.双击eclipse弹出路径对话框
2.复制路径到文件夹中查找
3.查找后,可以看见在Eclipse里的Java代码,选择一个项目,打开src,
4.新建一个项目,在里面创建一个包,右击选择package
5.然后回到文件夹,可以看到创建的包
6.同时创建包并在包里创建一个类
7.创建包,存储域名
8.在创建包存储域名时,把域名一次性打上去
9.不能同时创包并在包里创建类文件
10.内部类
成员内部类
在一个类中使用内部类,可以在内部类中直接存取其所在类的私有成员变量,语法如下:
class OuteruClass{//外部类
class InnerClass{//内部类
}
例题8.3
public class Car { //创建汽车类
//成员变量
private String brand; //汽车品牌
public Car(String brand) { //汽车类的构造方法,参数为汽车品牌
this.brand = brand; //给汽车品牌赋值
}
//成员内部类
class Engine{ //发动机类(内部类)
//成员变量
String model; //发动机型号
//构造方法
public Engine(String model) { //发动机类的构造方法,参数为发动机型号
this.model = model; //给发动机型号赋值
}
//成员方法
public void ignite() { //(发动机)点火方式
System.out.println("发动机"+this.model+"点火");
}
}
public void start() { //启动(汽车)方法
System.out.println("启动"+this.brand);
}
public static void main(String[]args) {
Car car =new Car("大众郎行");
car.start();
Car.Engine engine = car.new Engine("EA211");
engine.ignite();
}
}
运行结果如下:
成员内部类不止可以 在外部类使用,在其他类中也可以使用。在其他类中创建内部类的对象语法特殊,如下:
外部类 outer = new 外部类()
外部类.内部类 inner = outer.new 内部类();
使用this关键字获取内部类与外部类的引用
例题8.4
public class TheSameName {
private int x =7; //外部类的x
private class inner{
private int x =9; //内部类的x
public void doit() {
int x = 11; //局部变量x
x++; //调用局部变量
this.x++; //调用内部类的x
TheSameName.this.x++; //调用外部类的x
}
}
}
匿名类是只在创建对象时才会编写类体的一种写法,匿名类特点:现用现写,语法
例题8.5
abstract class Dog{
String Color;
public abstract void move();
public abstract void call();
}
public class Demo {
public static void main(String args[]) {
Dog maomao = new Dog() {
public void move() {
System.out.println("周杰伦");
}
public void call() {
System.out.println("兰亭序");
}
};
maomao.Color = "灰色";
maomao.move();
maomao.call();
}
}
- 使用匿名类时一个遵循以下原则:
(1)匿名类不能写构造方法
(2)匿名类不能定义静态的成员
(3)如果匿名类创建的对象没有赋值给任何引用变量,会导致该对象用完一次就会被Java虚拟销毁