毕向东Java学习笔记.doc
文本预览下载声明
Java基础学习笔记
1.JRE和JDK
?JRE(Java Runtime Environment ):Java运行环境,包括Java虚拟机和Java所需的核心类库等。
当多个类中出现功能相同,但是功能体不同,可以进行向上抽取,这时,只抽取功能定义,不抽取功能主体。
抽象的特点:1.抽象方法一定在抽象类中。2.抽象方法和抽象类都必须被abstract关键字修饰。3.抽象类不可以用new创建对象,因为调用抽象方法没意义。4.抽象类中的抽象方法要被调用,必须有子类复写其所有的抽象方法后,建立子类对象调用。如果子类只覆盖了部分抽象方法,那么子类仍然是抽象类。
抽象类比一般类多了抽象函数。抽象类不可以被实例化。抽象只能用来修饰类和方法。
特殊:抽象类可以不创建抽象方法,这样做仅仅是不让该类创建对象。
模板方法设计模式:在定义功能时,功能的一部分是确定的,但是有一部分是不确定的,而确定的部分,在使用不确定的部分,那么这时就将不确定的部分暴漏出去,由该类的子类去完成。
4.this用法
this代表它所在函数所属对象的引用(简单说:哪个对象在调用this所在函数。this就代表哪个对象)
this的应用:当定义类中功能时该函数内部要用到调用该函数的对象时,这时用this来表示这个对象但凡本类功能内部使用了本类对象都用this表示。
this语句用于构造函数之间互调。this语句只能放在构造函数的第一行,因为初始化语句要先执行
5.关键字final
final:最终,作为一个修饰符可修饰类、方法、变量。被final修饰的类不可以被继承,为了避免被继承,被子类复写功能。被final修饰的方法不能被复写。被final修饰的变量是常量,只能赋值一次,既可以修饰成员变量也可以修饰局部变量。
常量的书写规范:所有字母大写,当有多个单词组成时单词间通过下划线(_)连接。
6.接口(interface)
接口:可以认为是一个特殊的抽象类,当抽象类中的方法都是抽象的,那么该类可以通过接口的形式来表示。
class用于定义类。
interface用于定义接口。
接口定义时格式特点:1.接口中常见定义,常量,抽象方法。2.接口中的成员都有固定修饰符。常量:public static final ?;方法:public abstract。记住:接口中的成员都是public的。
接口不可以创建对象,因为有抽象方法。
需要被子类实现,子类对接口中的抽象方法全都覆盖后,子类才可以实例化,否则子类是一个抽象类。
接口可以被类多实现。
接口之间可以多继承。
接口的特点:1.接口是对外暴露的规则。2.接口是程序的功能扩展。3.接口可以用来多实现。4.类与接口之间是实现关系而且类可以继承一个类的同时实现多个接口。5.接口与接口之间可以有多继承关系。
基本功能定义在类中,扩展功能定义在接口中。
事物之间的关系:聚集:has-a(一个事物中包含另一事物);聚合:同类事物组成一个集合(如球员与球队的关系);组合:如手是身体的一部分。
7.构造函数
构造函数特点:1.函数名与类名相同;2.不用定义返回类型;3.不可以写return语句;
作用:给对象进行初始化
对象一建立构造函数就被执行
当一个类中没有定义构造函数时,那么系统会默认给该类加入一个空参数的构造函数,当在类中自定义构造函数后默认的构造函数就没有了。
构造代码块:格式:{ 执行语句};作用:给对象进行初始化,对象一建立就运行而且优于构造函数执行。?
构造代码块给所有的对象进行统一初始化而构造函数是给对应的对象初始化。构造代码块中定义的是不同对象共性初始化内容。
构造函数可以被私有化。
8.理解面向对象
面向过程强调的是功能行为。
面向对象:将功能进行封装进对象强调具备了功能的对象。
1.面向对象是相对于面向过程而言的。
2.面向对象和 面向过程都是一种思想。
3.面向过程强调的是功能行为。
4.面向对象将功能封装进对象,强调具备了功能的对象。
5.面向对象是基于面向过程的。
9.单例模式(Singleton)
饿汉式(先初始化对象,Singleton一进内存就已经创建好了对象)(开发一般用饿汉式):
[java] class Singleton{
? ? ? ? ? ?private static Singleton s=new Singleton();
? ? ? ? ? private Singleton() {}
? ? ? ? ? public static Singleton ?getInstance()
? ? ? ? ? {
? ? ? ? ? ? ? ?return s;
? ? ? ? ? }
? ? ? ? ?}
懒汉式(对象时方法调用时才被初始化,也叫做对象的延时加载。Singleton进内
显示全部