一、笔记
- 对象是类的一个实例
- 类是一个模板,它描述一类对象的行为和状态。
- 每个类都有构造方法,一个类可以有多个构造方法
- 关键字new来创建一个新的对象,会调用构造方法初始化对象
- 顺序 package import语句 类定义
- 包主要用来对类和接口进行分类,Import语句就是用来提供一个合理的路径,使得编译器可以找到某个类。
import java.io.*; //载入java_installation/java/io路径下的所有类
-
继承的特点:
- 子类拥有父类非 private 的属性、方法,子类是不继承父类构造方法或者构造函数,父类的构造器带有参数,则必须在子类的构造器中显式地通过
super
关键字调用父类的构造器并配以适当的参数列表,以便初始化私有域(super调用构造器语句必须是子类构造器的第一条语句);子类的方法不能直接访问父类的私有域,可以利用super
调用父类自身的方法来提供接口 - public 的方法在子类中也必须为 public;protected 的方法在子类中要么声明为 protected,要么声明为 public,不能声明为 private。
- 子类可以拥有自己的属性和方法,即子类可以对父类进行扩展
- 子类可以用自己的方式实现父类的方法
- 多重继承,Java 继承区别于 C++ 继承的一个特性 C->B->A
- 所有的类都是继承于 java.lang.Object,当一个类没有继承的两个关键字,则默认继承object
- 子类拥有父类非 private 的属性、方法,子类是不继承父类构造方法或者构造函数,父类的构造器带有参数,则必须在子类的构造器中显式地通过
- extends 和 implements 这两个关键字来实现继承,extends 只能继承一个类; implements 可以同时继承多个接口。
- super关键字:super关键字来实现对父类成员的访问,用来引用当前对象的父类。this关键字:指向自己的引用。
-
非访问控制符:
- static 修饰符,用来修饰类方法和类变量。
- final 修饰符,用来修饰类、方法和变量,final 修饰的类不能够被继承,修饰的方法不能被继承类重新定义,修饰的变量为常量,是不可修改的。final 变量一旦赋值后,不能被重新赋值; final 方法可以被子类继承,但是不能被子类重写;final 类不能被继承,没有类能够继承 final 类的任何特性;
- abstract 修饰符,用来创建抽象类和抽象方法。
- synchronized 和 volatile 修饰符,主要用于线程的编程。
-
访问控制修饰符:用来定义类、方法或者变量
- private : 在同一类内可见 类和接口不能声明为 private
- public : 对所有类可见
- protected : 对同一包内的类和所有子类可见 子类与基类在同一包中:被声明为 protected 的变量、方法和构造器能被同一个包中的任何其他类访问;子类与基类不在同一包中:那么在子类中,子类实例可以访问其从基类继承而来的 protected 方法,而不能访问基类实例的protected方法。
- 类之间的关系:依赖(uses-a),聚合(has-a),继承(is-a)
-
50.2
默认为double,50.2f
表示浮点 - 在一个源文件中只能有一个公有类,可以有任意数目的非公有类
- 父类(超类、基类),子类(派生类)
- 声明一个父类的变量,这个变量既可以引用父类的对象,也可以引用子类的对象。若用这个变量调用某个方法,虚拟机知道其实际引用对象,并引用相应的类方法。一个对象变量可以引用多种实际类型的现象叫做多态,在运行时能够自动的选择调用哪个方法的现象叫做动态绑定。
- 重写(overriding)和重载(overloading)是多态性的不同表现,重写是父类与子类之间的多态表现,重载是在一个类里面的多态性的表现。
-
多态的实现方式
- 重写和重载
- 接口
- 抽象类和抽象方法
-
抽象类:
- 所有的对象都是通过类来描绘的,不是所有的类都是用来描绘对象
- 抽象类除了不能实例化,类的其它功能依然存在,必须被继承,才能被使用
- 一个类只能继承一个抽象类
-
抽象方法:
- 类包含一个特别的成员方法,该方法的具体实现由它的子类确定,那么你可以在父类中声明该方法为抽象方法
- 抽象方法只包含一个方法名,而没有方法体,后面直接跟一个分号
- 如果一个类包含抽象方法,那么该类必须是抽象类。
- 任何子类必须重写父类的抽象方法,或者声明自身为抽象类
-
接口
- 是一个抽象类型,是抽象方法的集合(被隐式的指定为 public abstract),接口并不是类,没有构造方法,也无法被实例化
- 接口中方法必须是抽象方法(且不能在接口中实现),除非实现接口的类是抽象类,否则该类要定义接口中的所有方法
- 接口不是被类继承了,而是要被类实现
- 除了 static 和 final 变量,不能包含其它成员变量,不能含有静态代码块以及静态方法
- 一个类只能继承一个抽象类,而一个类却可以实现多个接口,一个接口能继承另一个接口
二、实践中的经验:
- 两个类在同一个包中,可以直接引用
- 类名首字母大写,方法变量名第二个字母和之后大写
- 添加键盘事件,先重写Keyadapter中的方法,然后给frame添加监听器
- 注意大小写 如:String
- 要想使用对象,就必须首先构造对象,并指定其初始装态,然后对对象施加方法
- 所有的方法中不要命名与实例域同名的变量。
三、疑问
- √静态static?
https://www.cnblogs.com/panjun-Donet/archive/2010/08/10/1796209.html
https://www.cnblogs.com/dongzhiquan/archive/2009/07/21/1994792.html - 内置类
- √包类之间的关系?
- √导入包?swing包?
- √super?this关键字
https://www.runoob.com/w3cnote/the-different-this-super.html
- 关于java数组?
- mvc
- 构造函数
四、单词
Cannot resolve symbol 'setSize' 无法解析符号“ setSize”
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。