51北京圣思园java课堂笔记

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

JAVASELesson11.类是一种抽象的概念,对象是类的一种具体表示形式,是具体的概念。先有类,然后由类来生成对象(Object)。对象又叫做实例(Instance)。2.类由两大部分构成:属性以及方法。属性一般用名词来表示,方法一般用动词来表示。3.如果一个java源文件中定义了多个类,那么这些类中最多只能有一个类是public的,换句话说,定义的多个类可以都不是public的。4.在Java中进行方法的参数传递时,无论传递的是原生数据类型还是引用类型,参数传递方式统一是传值(passbyvalue)。Java中没有传引用(passbyreference)的概念。5.方法重载(Overload)。表示两个或多个方法名字相同,但方法参数不同。方法参数不同有两层含义:1)参数个数不同。2)参数类型不同。注意:方法的返回值对重载没有任何影响。6.构造方法重载:只需看参数即可。如果想在一个构造方法中调用另外一个构造方法,那么可以使用this()的方式调用,this()括号中的参数表示目标构造方法的参数。this()必须要作为构造方法的第一条语句,换句话说,this()之前不能有任何可执行的代码。7.继承(Inheritence):Java是单继承的,意味着一个类只能从另一个类继承(被继承的类叫做父类【基类,baseclass】,继承的类叫做子类),Java中的继承使用extends关键字。8.当生成子类对象时,Java默认首先调用父类的不带参数的构造方法,然后执行该构造方法,生成父类的对象。接下来,再去调用子类的构造方法,生成子类的对象。【要想生成子类的对象,首先需要生成父类的对象,没有父类对象就没有子类对象。比如说:没有父亲,就没有孩子】。9.super关键字:super表示对父类对象的引用。10.如果子类使用super()显式调用父类的某个构造方法,那么在执行的时候就会寻找与super()所对应的构造方法而不会再去寻找父类的不带参数的构造方法。与this一样,super也必须要作为构造方法的第一条执行语句,前面不能有其他可执行语句。11.关于继承的3点:a)父类有的,子类也有b)父类没有的,子类可以增加c)父类有的,子类可以改变12.关于继承的注意事项a)构造方法不能被继承b)方法和属性可以被继承c)子类的构造方法隐式地调用父类的不带参数的构造方法d)当父类没有不带参数的构造方法时,子类需要使用super来显式地调用父类的构造方法,super指的是对父类的引用e)super关键字必须是构造方法中的第一行语句。13.方法重写(Override):又叫做覆写,子类与父类的方法返回类型一样、方法名称一样,参数一样,这样我们说子类与父类的方法构成了重写关系。14.方法重写与方法重载之间的关系:重载发生在同一个类内部的两个或多个方法。重写发生在父类与子类之间。15.当两个方法形成重写关系时,可以在子类方法中通过super.run()形式调用父类的run()方法,其中super.run()不必放在第一行语句,因此此时父类对象已经构造完毕,先调用父类的run()方法还是先调用子类的run()方法是根据程序的逻辑决定的。16.在定义一个类的时候,如果没有显式指定该类的父类,那么该类就会继承于java.lang.Object类(JDK提供的一个类,Object类是Java中所有类的直接或间接父类)。17.多态(Polymorphism):我们说子类就是父类(玫瑰是花,男人是人),因此多态的意思就是:父类型的引用可以指向子类的对象。JAVASELesson21.多态:父类型的引用可以指向子对象。2.Parentp=newChild();当使用多态方式调法时,首先检查父类中是否有ssing()方法,3.一共有两种类型的强制转换:a)向上类型转换(向上类型转换(upcastupcastupcastupcastupcast):比如说将):比如说将):比如说将CatCat类型转换为AnimalAnimal类型,即将子类型,即将子转换为父类型。对于向上,不需要显式指定b)向下类型转换(向下类型转换(downcastdowncastdowncastdowncastdowncastdowncastdowncast):比如将):比如将):对于向下,必须要显式指定转换为子类型。对4.抽象类(抽象类(abstractclass):使用了abstract关键字所修饰的类叫做抽象。抽象类无法实例化,也就是说不能newnew出来一个抽象类的对(实例)。5.抽象方法(abstractmeth):使用abstractt关键字所修饰的方法叫做抽方法之前所定义的叫。相对于抽象方法,之前所定义的叫。相对于抽象方法,之前所定义的叫做具体方法(有声明,实现)。6.如果一个类包含了抽象方法,那么这定是抽象类。7.如果某个类是抽象,那么该可以包含具体方法(有声明、实现)。如果某个类是抽象,那么该可以包含具体方法(有声明、实现)。8.如果一个类中包含了抽象方法,那么这定要声明成abstractclass也就是说,该类一定抽象;反之如果某个该类包含抽象方法,9.无论何种情况,只要一个类是抽象那么这就法实例化。10.在子类继承父(是个抽象)的情况下,那么该子类必须要实现中所定义的所有抽象方法;否则,该子类需要声明成一个abstractclass。11.接口(interface):接口的地位等同于接口的地位等同于class,接口中的所有方法都是抽象方法。在声明接口中的方法时,可以使用abstract关键字,也可以不使用。通常情况下,都会省略掉abstract关键字。12.可以将接口看作是特殊的抽象类(类中没有具体方法,13.类可以实现接口。实现使用关键字实现使用关键字implements表示某个类实现某个接口。14.一个类实现了某接口,那么该类必须要实现接口中声明的所有方法。如果一15.Java是单继承的,也就说某个类只能有唯一父;可以实现多个接口,多之间使用逗号分隔。16.多态:所谓,就是父类型的引用可以指向子对象或者类例。关于接口与实现的类之间强制类型之间的强完全一样。17.static关键字:可以用于修饰属性,也方法还可以用于修饰属性,也方法还类(后面的课程讲)18.statictatictatictatic修饰属性:无论一个类生成了多少对象,所有这些共同使用唯一份静态的成员变量;值也会随之发生化。如果一个成员变量是staticc的,那么我们可以通过类名.成员变量名的方式来使用它19.staticstaticstaticstaticstatic修饰方法:static修饰的方法叫做静态。对于静态方法来说,可以使用类名.方法名的方式来访问。20.静态方法只能继承,不重写((Override)。21.final关键字:final可以修饰属性、方法,类。22.final修饰类::当一个类被final所修饰时,表示该类是一个终态即不能被继承。23.final修饰方法:当一个方法被finall所修饰时,表示该方法是一个终态所修饰时,表示该方法是一个终态即不能被重写(Override)。24final修饰属性:当一个属性被当一个属性被final所修饰时,表示该属性不能被改写。25.当final修饰一个原生数据类型时,表示该的值不能发变化(比如说不能从10变为20);如果final修饰一个引用类型时,该引用不能再指向其他对象了,但该引用所的内容是可以发生变化26.对于final类型成员变量,一般来说有两种赋初值方式:a)在声明finalfinalfinal类型的成员变量时就赋上初值b)在声明final类型的成员变量时不赋初值,但在所有构造方法中都为其类型的成员变量赋初值,27.staticc代码块:静态代码块作用是完成一些初始化工。在类被加载的时候先执行静态代码块,而构造方法是在生成对象的时候执行;要想调用某个类来,首先需而构造方法是在生成对象的时候执行;30.不能在静态方法中访问非成员变量,可以在非静态方法中访问静态成员变量和非静态成员变量,;31.总结:静态的只能访问;非可以一切。32.不能在静态方法中使用this关键字。JavaSELesson31.接口中所声明的方法都是抽象方法。接口中的方法都是public的。2.接口中也可以定义成员变量。接口中的成员变量都是public、final、static的。3.一个类不能既是final,又是abstract的。因为abstract的主要目的是定义一种约定,让子类去实现这种约定,而final表示该类不能被继承,这样abstract希望该类可以被继承而final明确说明该类不能被继承,两者矛盾。因此一个类不能既是final的,又是abstract的。4.DesignPattern(设计模式)。单例模式(Singleton):表示一个类只会生成唯一的一个对象。5.包(package)。用于将完成不同功能的类分门别类,放在不同的目录(包)下。包的命名规则:将公司域名反转作为包名。,com.shengsiyuan(包名),对于包名:每个字母都需要小写。如果定义类的时候没有使用package,那么Java就认为我们所定义的类位于默认包里面(defaultpackage)。6.编译带有package声明的Java源文件有两种方式:a)直接编译,然后根据类中所定义的包名,逐一手工建立目录结构,最后将生成的class文件放到该目录结构中(很少使用,比较麻烦)。b)使用编译参数–d,方式为javac–d.源文件.java,这样在编译后,编译器会自动帮助我们建立好包所对应的目录结构。7.有两个包名,分别是aa.bb.cc与aa.bb.cc.dd,那么我们称后者为前者的子包。8.导入(import),将使用package分离的各个类导入回来,让编译器能够找到所需要的类。9.import的语法:importcom.shengsiyuan.PackageTest;10.importcom.shengsiyuan.*,表示导入com.shengsiyuan包下面的所有类。11.importaa.bb.*并不会导入aa.bb.cc包下面的类。这时需要这样写:importaa.bb.*;importaa.bb.cc.*;12.关于package、import、class的顺序问题:a)首先需要定义包(package),可选b)接下来使用import进行导入,可选c)然后才是class或interface的定义。13.如果两个类在同一个包下面,那么则不需要导入,直接使用即可。14.访问修饰符(accessmodifier)。1)public(公共的):被public所修饰的属性和方法可以被所有类访问。2)protected(受保护的):被protected所修饰的属性和方法可以在类内部、相同包以及该类的子类所访问。3)private(私有的):被private所修饰的属性和方法只能在该类内部使用4)默认的(不加任何访问修饰符):在类内部以及相同包下面的类所使用。15.instanceof:判断某个对象是否是某个类的实例。语法形式:引用名instanceof类名(接口名),返回一个boolean值。16.Peoplepeople=newMan();17.System.out.println(peopleinstanceofPeople);//结果为true,因为Man是People的子类,根据继承,子类就是父类,因此Man也可以看作是People的实例。18.相等性的比较(==)1)对于原生数据类型来说,比较的是左右两边的值是否相等。2)对于引用类型来说,比较左右两边的引用是否指向同一个对象,或者说左右两边的引用地址是否相同。19.java.lang.Object类。java.lang包在使用的时候无需显式导入,编译时由编译器自动帮助我们导入。20.API(ApplicationProgrammingInterface),应用编程接口。

1 / 74
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功