第一节
1、J2SE–>J2EE(Web应用——互联网应用)
2、java世界的bin目录,就是windows下exe程序所在的目标名称。(linux下的程序大多也是这个bin目录)
3、java开发使用的所有程序都在bin目录中,如果希望在cmd中任何一个位置都能调用到bin目录中的程序,那么需要配置windows系统的环境变量path,添加java的bin目录所在位置PS:一般为了方便我们会设置一个特殊环境变量名称JAVA_HOME配置jdk的安装路径,进而容易查找到该安装目录下的bin目录。(注意的是后期tomcat web容器以及eclipse等开发工具也会默认查找JAVA_HOME变量,来确定jdk安装路径)
4、结论:安装jdk环境——>正常的windows程序安装后,需要配置JAVA_HOME和PATH变量。
5、两个核心exe程序:javac、java
a、javac称为java编译程序(规范要求javac编译的源文件名和生成的字节码文件名应该一致。)
b、java称为java运行程序(java运行字节码文件)
6、程序的起点是main函数:public static void main(String[] args)
第二节
1、OOP面向对象编程:先有过程,后得结果。
2、过程指得是现实客观得内容变为虚拟抽象得内容得过程——过程得步骤是:先归纳出类–>类中加属性(特征)和方法(行为动作)
3、结果指得是根据过程中得类(属性+方法)来创造可以完成任务得个体(对象)
PS:以上就是狭义得OOP编程,广义得OOP就是把现实中抽象得概念也看成可以用类描述得独立客观实体。
4、OOP操作过程:创建类,定义属性和行为后添加构造方法
5、构造方法是特殊得方法,用来创建对象,而创建对象时需要先对属性进行赋值(这是java中得OOP思想)
PS:javascript这种脚本程序得OOP思想不是这样的,而是先把一个对象创建出来后,对象存在才能赋值属性。也就是java中是先有属性后又有对象,js中是先有对象后有属性。
1、2、3重点 5重点
第三节:
1、OOP:类(抽象)、对象(具体),属性(变量/特征/数据成员),方法(行为动作),构造方法(创建对象分配空间+初始化属性赋值)
2、对象的引用地址可以用来对输入对象进行加工处理,获得需要的结果,并把加工处理过程进行了特定业务的封装。
3、eclipse快捷方式:自动创建构造和get/set方法(快捷键alt+shift+s弹出选择)
4、访问修饰符:public(不同包)/protected(继承关系)/默认(同包)/private(类内)
5、继承:子类继承父类的非私有的属性和方法,并且只能单重继承(只能有一个父类),关键词extends.
a、子类对象与父类对象共用同一空间,所有子类可以使用父类的属性和方法。(思考父类使用子类的属性和方法可以吗?)
b、子类重写父类的方法,为了增加或改写父类的功能(行为动作),而特征没有被重写覆盖,因为属性特征是用来做标识对象使用的,和方法的作用以及意义不同。
c、重写是模板方法的基本技术基础。
6、对象的包含:一个对象引用另一个对象
7、多态分静态多态和动态多态,静态多态是编译时多态(重载),动态多态是运行时多态(重写)
PS:C#的向上造型就是java中所提的自动类型转换,向下造型就是java中所提的强制类型转换。(继承关系发生时)
8、static修饰符:
a、static修饰的类(static)变量优先级高于成员变量
b、继承关系中父类成员变量和父类对象的创建的优先级高于子类的成员变量
c、类(static)变量的优先级高于父类成员变量和父类对象的创建。
d、继承关系中都为类(static)变量,那么父类的类变量优先级高于子类的类变量。
e、static修饰符修饰的类变量和静态语句块都只会运行一次。
f、可以使用静态变量作为应用级别的全局变量,被所有类和对象共用。
9、final修饰符:
a、修饰属性,只能赋值一次,变量变常量
b、修饰成员方法,子类不能重写,方法不可修改
c、修饰类,不能被继承,保证了程序的唯一性。
第四节:
1、jdk,jre,javac,java,.java,.class,main,path,JAVA_HOME
public static void main(String[] args){}
2、package和eclipse等工具都是为了提高开发效率的。
3、变量,类型,运算符 ,控制语句,数组。
4、面向对象:
a、五大核心元素:类,对象,属性,方法,构造方法
b、类描述对象的特征(属性)和行为(方法),然后利用创建对象,创建对象的语法是new+构造方法,new是开辟内存空间,构造方法是初始化属性及其他初始化操作。
c、五个元素的任务:
a、类:创建抽象的概念描述对象——软件开发中需要利用OOP思想对任务过程进行拆解和细分——拆解和细分把一个过程根据阶段或节点分为小的“对象”,并总结为“类”来表达
b、对象:就是具有特征和行为的个体——软件开发中就是具有具体属性和方法的由类创建的具体运行的程序。
c、属性:就是对象的特征——软件开发中就是一个变量,可以改变的数据——数据的改变就是特征的变化——同时也是用来保存变化的数据的。
d、方法:就是对象的行为——软件开发中就是任务(业务)的过程描述,可以完成一件事情——具体来说程序的运行流程或过程。
e、构造:用来初始化对象——软件开发中就是用来初始化属性值的。
d、继承(extends)和多态(重载和重写)
e、static和final以及public/protected/默认/private
5、抽象abstract
a、abstract修饰的类叫做抽象类,无法创建具体的对象。public abstract class Animal{}就是一个抽象类
b、abstarct修饰的方法叫做抽象方法,无法完成具体的任务(没有方法体)
c、抽象类必须创建子类继承抽象类实现抽象方法,才能由具体类(子类)创建对象。
6、抽象类的特点:
a、可以有非抽象的属性、方法,和构造方法,也可以有抽象方法。
b、抽象类的构造不能直接创建对象,由子类创建对象时调用。
c、抽象方法必须在抽象类中
d、抽象方法必须被子类重写(实现)。
7、接口:
a、接口是特殊的抽象类,没有具体方法可以实现,只能包含抽象方法。
b、可以有static修饰的静态方法,但静态方法不再被子类继承和重写,只能通过接口名直接调用。
c、最新的接口interface中可以有非抽象的成员方法,需要添加default修饰符即可。
d、注意接口的default方法的作用是提供默认实现,即接口的实现类可以不重写该方法。注意多个接口的default方法名不应该重名。
8、具体类–>abstract抽象类–>接口interface,一般综合使用,具体类继承抽象类,抽象类实现部分接口定义得方法.
第五节:
1、String、StringBuffer、StringBuilder
2、Object:toString()、equals()、hashCode()
3、包装类:Integer(把非对象的变成对象——OOP的基本思想)
4、Math工具类
5、Date类需要创建对象才能使用
a、创建对象——new Date();(可以同一new出所有对象放到一个容器中,然后从容器里取对象即可——Spring的IoC)
b、对象调用方法(或读取属性)——getTime()/setTime()
6、Calendar日历类——子类GregorianCalendar
a、这是对日期的处理工具,可以计算时间。
b、计算包含,取年月日等信息YEAR…,计算一年中第几天等day_of_xxx,或多少天之后。add
c、特殊计算方法:日期之间的比较运算。
7、SimpleDateFormat格式化日期工具——负责实现Date和String之间的相互转换。
8、Random随机数工具,注意可以通过种子数来获取特定序列的随机数。
9、Error是错误,不可以被程序内部处理,Exception是异常,可以被程序内部处理,这两种都是(Throwable)可抛出的区别只是能不能处理。
PS:Error和Exception的区别在于业务处理上的区别,进行了不同的归类,在此基础上进行了两个类Error和Exception的设计。
10、Exception异常