第一课笔记
1.取模的规律:取模的结果符号永远与被除数的符号相同
int a=5; int b=-3; int c=a%b;==2
int a=-5; int b=3; int c=a%b;==-2
2.命名约束
类:首字母大写,如果一个类名由多个单词构成,那么每个单词的首 字母大写,中间不使用任何的连字符。比如Person类MemberTest类
方法:首字母小写,如果一个方法有多个单词构成,那么第一个单词 的所有字母全都小写,从第二个单词开始,每个单词的首字母大写, 如add,addThreeInt
属性:命名约定与方法相同,比如age,ageOfPerson。
3.成员变量的默认初始值
a:byte,short,int,long 初始值为0;
b:float,double 初始值为0.0
c:char 初始值为‘\u0000’;\u开头的是一个Unicode码的字符,每一个'\u0000'都代表了一个空格
d:boolean 初始值为 false
4.如果一个java源文件中定义了多个类,那么这些类中最多只能有一个类是 public的,换句话说,定义的多个类可以都不是public的
5.栈:stack 原生数据类型 堆:heap 对于java中的方法参数传递,无论传递的是原生数据类型,还是引用类型, 统一是传值
6.eclipse 快捷键 ctrl+d是删除当前行。 当光标在一行的两端时,按住shift+home/end可以选择当前行 ctrl+左右是跳过一个单词, ctrl+shift+左右是选择一个单词,可以 连点左右已选择多个。
7.new关键字在生成对象是完成了三件事
a)为对象开辟内存空间
b)调用类的构造方法
c)将生成的对象的地址返回
8.方法重载(Overload) 方法参数不同有两层含义 1)参数个数不同 2)参数类型不同 注意:方法的返回值对重载没有任何影响
9.构造函数重载: 如果在一个构造函数中调用另一个构造函数使用this(),括号中的 参数表示目标构造函数的参数,且this()必须要放在一个行,换句话说 this()之前不能有任何可执行的代码。
10.继承(Inheritance):当生成子类对象时,java默认首先调用父类的不带 参数的构造方法,然后执行执行该构造方法,生成父类的对象,接下来, 在调用子类的构造方法,生成子类的对象。【要想生成子类的对象,首先需要生成父类的 对象,没有父类的对象就没有子类的对象】
11.super关键字。
1)super表示对父类对象的引用。
2)如果子类使用super()显示的调用父类的某个构造方法, 那么在执行的时候就会寻找与super()所对应的构造方法而不再 去寻找父类的不带参数的构造方法。
3)与this()一样super()也必须要作为构造方法的第一条语句。
12.继承
1)父类有的,子类也有
2)父类没有的,子类可以增加
3)父类有的,子类可以改变
4)构造方法不能继承
5)方法和属性可以继承
6)子类的构造方法隐式的调用父类的不带参数的构造方法
13.方法重写(Override):又叫覆写。子类与父类的方法返回的类型一样, 方法名称一样,参数一样,这样我们说子类与父类的方法构成了重写
14.重载与重写:重载发生在同一个类内部的两个或多个方法。 重写放生在父类与子类之间。 2)当两个方法形成重写关系时,可以再字方法中通过super()形式调用父类的方法, 其中super()不必一定放在第一行,因为此时父类对象已经构造完毕。
15.多态(Polymorphism):我们说子类就是父类,因此多态的意思是:
1)父类型的引用可以指向子类的对象。
2)Parent p=new Child();当使用多态方式调用方法是,首先检查父类 中是否有sing()方法,如果没有则编译错误,如果有,再去调用子类的sing() 方法。
16.一共有两种类型的强制类型转换:
1)向上类型转换(upcast):将Cat类型转换为Animal类型 将子类型转换为父类型。对于向上类型转换,不需要显示转换
2)向下类型转换(Downcast):比如将Animal类型转换为Cat类型。 即将父类型转换为子类型,对于向下类型转换,必须显示的制定(必需要使用强制类型转换), 17.抽象类:
1)抽象类不能实例化。
2)抽象方法: 1)抽象方法需要定义在抽象类当中。
2)只能定义不能实现。
3)如果一个类包含了抽象方法,则该类一定是一个抽象类。
4)如果一个类是抽象类,那么该类可以包含具体方法(有声明,有实现)。
5)继承:子类必须实现父类所定义的所有抽象方法,否则,盖子类需要声明成一个 abstract class。
18.接口:(intreface)
1)地位:等同于class
2)接口中的所有方法都是抽象方法
3)在声明接口中的方法时,可以使用abstract,也可以不使用。 通常情况下都是省略abstract关键字。
4)接口可以看成是特殊的抽象类。
5)类可以实现接口(implements表示)
6)一个类实现了某个接口,那么该类必须要实现接口中生命的所有方法, 否则必须为抽象类。
7)一个类可以实现多个接口
19.多态: 1)就是父类型的引用可以指向子类型的对象,或者接口类型的引用可以指向 实现该接口的类的实例。接口与实现接口的类/父类与子类 强制转换完全一样
20.static关键字:
1)可以修饰属性,方法,类。
2)如果一个成员变量是static 的,那么我们可以通过类名,还有对象来调用 推荐用类名直接访问。
3)静态方法只能继承,不能重写(override)。
21.final关键字:
1)可以修饰属性,方法,类。
2)修饰类:该类为终态,不能被继承。
3)修饰方法:该方法为终态方法,既不能被重写。
4)修饰属性:表示该属性不能被改写。
5)当final修饰一个原生数据类型时,表示该原生数据类型的之不能发生改变; 如果final修饰的是一个引用类型,表示该引用类型不能在指向其他对象, 但该引用所指 向的对象的内容可以发生改变。
6)对于final类型的变量,一般来说有两种赋初值的方式: a)在声明final类型的成员变量时就赋上初值。 b)在声明的时候没有赋值,但是在类的所有构造函数中都要赋上初值。
22.静态(static)代码块: static { }
1)静态代码块的作用也是完成一些初始化工作。首先先执行静态代码块, 再执行构造方法。静态代码块在累被加载的时候执行,尔构造方法 是在生成对象的时候执行,要想调用某个类来生成对象,首先 需要讲类加载到java虚拟机上(JVM),然后由JVM加载这个类 来生成对象。
2)类的静态代码块只会执行一次,是在类被加载的时候执行的,而构造方法则不然, 每次生成一个对象的时候就会调用类的构造方法,所以new一次就会调用 构造方法一次。
3)如果集成体系中,既有构造方法,又有静态代码块,那么首先执行最顶层类的 静态代码块,一直执行到最底层的静态代码块,然后再去执行最顶层的 类的构造方法,一直执行到最底层的类的构造和方法。注意:静态代码块只会执行一次。
4)不能在静态方法中访问非静态的成员变量;可以在静态方法中访问静态的成员 变量。可以在非静态方法中访问静态的成员变量。
5)总结:静态的只能访问静态的,非静态的可以访问一切。
6)不能在静态方法中使用this关键。
23.接口 1)接口中的方法都是public
2)接口中可以定义成员变量 都为:public final static
24.一个类不能即是final,又是abstract的。因为abstract的主要目的是定义一种约束, 让子类去实现这种约定,而final表示该类不能被继承,这样abstract 希望该类可以被继承而final明确说明该类不能被继承,两者矛盾。

浙公网安备 33010602011771号