跳至主要內容
内部类

有一种类是被定义在某一个类中的(类中类)称为内部类

Inner Class

如果一个类定义在某一个类的内部,这个类就是 Inner Class

class Outer{
    class Inner{
        //这里定义了一个内部类
    }
}

岁杪二四...大约 2 分钟面向对象学习笔记
抽象类和接口

首先看一个案例,当需要做一个绘制图形的类,存在以下继承结构:

Shape是什么形状? 其中,RectangleSquare……这几个子类是描述的某一具体的形状,但 Shape类不是具体的,而是抽象的。

抽象类

我们称像 Shape这样表达某一种概念的类叫做抽象类


抽象方法


岁杪二四...大约 2 分钟面向对象学习笔记
继承

继承的概念

当我们发现某两个类中的非常相似,并且可以用相似的类去抽象构造,此时我们可以使用继承来减少书写重复代码,从而提高代码编写的效率。同时,降低代码相似度,从而易于后续的代码维护。

在程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系。例如:我们想要创建一个存放东西的数据库,里面所有的东西都可以称为一种 item,而具体物品有两种为 CDDVD

extends


岁杪二四...大约 6 分钟面向对象学习笔记
多态

多态变量

Java的对象变量是多态的,它们能保存不止一种类型的对象,它们可以保存的是声明类型的对象,或声明类型的子类的对象例:当父类为 item,子类为 CDDVD

public static void main(String args[]){
     item a = new item();
     item b = new CD();   //向上造型
     item c = new DVD();
}

岁杪二四...大约 2 分钟面向对象学习笔记
静态字段和静态变量(类变量)

静态字段

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);
    }
}

岁杪二四...大约 2 分钟面向对象学习笔记

包(package)

:主要为了解决命名冲突的问题,包是一种名字空间

当有以下文件结构:

clock----------project根目录   
|___src--------资源目录
    |___clock
        |___Clock.java
    |___display
        |___Display.java

岁杪二四...小于 1 分钟面向对象学习笔记
Java基本语法

逃逸字符

字符 意义 字符 意义
\b 回退一格 \" 双引号
\t 到下一个表格位 \' 单引号
\n 换行 \\ 反斜杠本身
\r 回车

岁杪二四...大约 1 分钟面向对象学习笔记
对象和类

对象是实体,需要被创建 new,可以为我们做事情。对象 = 属性 + 服务

  • 表达东西或者事件
  • 运行时响应消息(提供服务)

把数据和对数据的操作放在一起\rightarrow封装


岁杪二四...大约 4 分钟面向对象学习笔记