java学习笔记(上)

来源:互联网 发布:盗号软件下载免费 编辑:程序博客网 时间:2024/06/06 14:06

1.java是纯面向对象语言,较之c++而言,严格规定了很对面向对象的东西,同时又减去了c++中很多复杂的东西,如指针,内存的申请和释放等等......

 

2.数据类型的转换,大容量的数据转换成小容量要加上强制转换符,而小容量向上转换则可加可不加.

 

3.java中的方法类似于c中的函数,包含有返回类型,函数名,变量声明等.

 

4.java中的类都是单继承,使用extends关键字来实现继承,所有的类都继承自object类,所以object类中的方法在其子类中都可以使用或重写.

 

5.java如果想实现多重继承可以使用接口,接口是一种抽象方法和常量值定义的集合.成员变量默认是public static final(也只能是它),且定义的方法都不用实现,需要交给继承接口的类来实现它.定义接口的关键字是interface,使用接口的关键字为implements.

 

6.可以有同名方法,但是所传的形参必须不同,这就是重载,构造方法亦可以重载.而重写是在子类中可以定义与父类方法名,参数列表和返回类型都相同的方法,且重写的方法必须不能使用比被重写方法更严格的访问权限.

 

7.构造函数与c++相似,但是没有析构函数及拷贝构造等等...

 

8.必须使用new来创建对象,但是不必使用delete来释放,因为系统会自己回收.并且java中的数组也必须要用new才能创建出来,否则只会是null并且不会在堆中占有内存.

 

9.使用this关键字可以指向该对象本事,而使用super关键字则是指向该对象的父类.

 

10.使用static声明的变量和方法都是静态的,无论实例化对象几次,在内存中只会存在一份.static变量时公用变量,会在第一使用的时候被初始化,只后使用的也都会一直是它.而static方法在类中只能访问static成员变量,不可以访问非static成员变量.

 

11.package可以将当前文件指定在某个目录下,类似于c++中的命名空间,可以有效的避免重名的问题.使用import可以访问包中的内容,值得注意的是,包所写的有几层,就必须将class文件放在几层目录下面.

 

12.j2sdk的一些主要包

    - java.lang 包含一些java语言的核心类,如String、Math、Integer、System和Thread,提供常用功能

    - java.awt 包含了构成抽象类的工具集(abstract window toolkits)的多个类,这些类被用来构建和管理应用程序的图形用户界面(GUI).

    - java.applet 包含applet运行所需的一些类.

    - java.net 包含执行与网络相关的操作类.

    - java.io 包含能提供多种输入/输出功能的类.

    - java.util 包含一些实用工具类,如定义系统特性,使用与日期日历相关的函数.

 

13.使用jar -cvf xx.jar *.*可以打包一些写好的类.

 

14.通过继承,子类可以拥有父类所有的成员变量和方法,但是无法访问父类的私有(private)成员变量和方法.

 

15.一个文件中只能有一个public类且类名必须要与文件名同名.当不写访问控制修饰符时,系统会默认为default,default类只可以被同一个包内部的类访问.

 

16.子类的构造过程中必须调用父类的构造方法.子类可以在自己的构造方法中使用super显示的地调用父类的构造方法,也可以用this调用本类中其他的构造方法,但是如果使用super调用父类的构造方法,则必须写在当前构造方法的第一行.如果子类没有调用父类的构造方法,则系统会默认调用父类的无参构造方法,但是如果父类中没有无参构造方法,则编译的时候会报错.

 

17.object类是所有java类的根基了(因为java是单继承).

    - toString()方法,其返回值是String类型,描述当前对象的有关信息.可根据需求来自己重写.

    - equals(object obj)方法,用来判断两个对象的引用是否指向的同一对象.

 

18.a instanceof b 用来判断对象a是否是类b的实例化.

 

19.子类的对象可以当做积累的对象来使用,称为向上转型(upcasting),反之则称为向下转型(downcasting).

 

20.final变量的值不能被改变,final的方法不能够被重写,final的类不能够被继承.

 

21.用abstract关键字来修饰一个类时,这个类叫抽象类,类中所有的方法都只需声明,而不用实现.并且抽象类不能被示例化.

 

22.异常时java提供用于处理错误的机制,error称为错误,是有java虚拟机跑出的,可以不对其做处理.exception是异常的父类,一般可以对其进行处理.Runtime Exception是一类特殊的异常,是经常发生的错误,一般不对其进行处理.

 

23.异常的结构如下:

try{

可能发生错误的语句

}catch{

可能发生的错误1

}catch{

可能发生的错误2

}... ...

finally{

不论语句有没有错误,都需要执行的代码

}

 

24.使用自定义的异常.

    - 通过继承java.lang.Exception类声明自己的异常类.

    - 在方法适当的位置生成自定义异常的实例,并throw语句抛出.

    - 在方法的声明部分用thows语句声明该方法可能抛出的异常.

 

25.冲洗方法需要且只能抛出与原方法所抛出异常类型一致,或者不抛出异常.

 

26.数组必须用new运算符只会才能分配空间.