有一种类是被定义在某一个类中的(类中类)称为内部类
Inner Class
如果一个类定义在某一个类的内部,这个类就是 Inner Class
class Outer{
class Inner{
//这里定义了一个内部类
}
}
...大约 2 分钟
有一种类是被定义在某一个类中的(类中类)称为内部类
如果一个类定义在某一个类的内部,这个类就是 Inner Class
class Outer{
class Inner{
//这里定义了一个内部类
}
}
首先看一个案例,当需要做一个绘制图形的类,存在以下继承结构:
Shape
是什么形状?
其中,Rectangle
、Square
……这几个子类是描述的某一具体的形状,但 Shape
类不是具体的,而是抽象的。
我们称像 Shape
这样表达某一种概念的类叫做抽象类
当我们发现某两个类中的非常相似,并且可以用相似的类去抽象构造,此时我们可以使用继承来减少书写重复代码,从而提高代码编写的效率。同时,降低代码相似度,从而易于后续的代码维护。
在程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系。例如:我们想要创建一个存放东西的数据库,里面所有的东西都可以称为一种 item
,而具体物品有两种为 CD
和 DVD
extends
Java的对象变量是多态的,它们能保存不止一种类型的对象,它们可以保存的是声明类型的对象,或声明类型的子类的对象例:当父类为 item
,子类为 CD
和 DVD
时
public static void main(String args[]){
item a = new item();
item b = new CD(); //向上造型
item c = new DVD();
}
在 class
中定义的字段,称为实例字段,每个实例(对象)都有独立的字段,各个实例的同名字段互不影响。
而使用 static
修饰的字段,称为静态字段:satic field
实例字段在每个实例中都独立存在,但静态字段所有实例都会共享该字段。如下:
public class Display {
private int value = 0;
private int limit = 0;
private static int step = 1;
......
public static void main(String[] args){
Display d1 = new Display(10);
Display d2 = new Display(20);
d1.inctrease(); //使得对应对象的vlaue属性自增1
System.out.println(d1.getValue());
System.out.println(d2.getValue());
System.out.println(d1.step);
System.out.println(d2.step);
d1.step = 2; //实例变量.静态字段
System.out.println(d1.step);
System.out.println(d2.step);
Display.step = 3; //类名.静态字段
System.out.println(d1.step);
System.out.println(d2.step);
}
}
包:主要为了解决命名冲突的问题,包是一种名字空间
当有以下文件结构:
clock----------project根目录
|___src--------资源目录
|___clock
|___Clock.java
|___display
|___Display.java
字符 | 意义 | 字符 | 意义 |
---|---|---|---|
\b |
回退一格 | \" |
双引号 |
\t |
到下一个表格位 | \' |
单引号 |
\n |
换行 | \\ |
反斜杠本身 |
\r |
回车 |