第一课笔记

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明确说明该类不能被继承,两者矛盾。

posted @ 2012-12-08 15:54  open your eyes  阅读(147)  评论(0)    收藏  举报