本帖最后由 创造命运 于 2013-9-9 18:15 编辑
1. 如果希望在子类中调用父类的构造函数,要求在子类的构造函数中去调用,可以通过super函数来实现
2. 类的成员函数的声明与定义的区别:函数的声明没有函数体,定义却要包括函数体
3. 在调用某个成员方法的时候,给出具体的参数个数和类型要一致
2.3;3.4这样的数据如果不加f(如2.3f),则默认是double类型数
4,5,6等默认是int型
switch()的条件表达式只能是:int short byte enum char
4. 先设计类,然后根据类创建对象
5. 构造方法(函数)的主要功能是用来初始化类的成员属性(变量)
6. 构造函数可以有多个,但不能相同,否则编译时会报重复定义错误
如果希望在子类中调用父类的构造函数,要求在子类的构造函数中去调用,可以通过super函数来实现
7. this只能在类定义方法中使用,不能在类定义的外部使用
8. JAVA中类的static成员变量可以被任何一个对象访问,即类变量
类变量是该类的所有对象共享的变量,任何一个该类的对象去访问它时,取到的都是相同的值,同样任何一个该类的对象去修改它时,修改的也
是同一个变量。 static 变量如果不赋初值,会默认为0
访问类变量: 类名.变量名 或 对象名.变量名
9. JAVA中规则:静态变量(类变量)原则上用类方法去访问和操作
类方法中不能访问非类变量(静态变量)
类变量与实例变量的区别:加上static称为类变量,否则为实例变量
类变量是与类相关的,公共的属性
实例变量属于每个对象个体的属性
类变量可以通过类名.类变量名直接访问
类方法小结:类方法属于与类相关的,公共的方法
实例方法属于每个对象个体的方法
类方法可以通过类名.类方法名直接访问
10. JAVA编程的三大特征:
封装: 四种访问控制修饰符:public, protected, 默认, private
封装就是把抽象出的数据和对数据的操作封装在以起,数据被保护在内部,
程序的其它部分只有通过被授权的操作(成员方法),才能对数据进行操作
继承: 使用已存在的类的定义作为基础建立新的技术,新类的定义可以增加新的数
据或新的功能,也可以用父类的功能,但不能选择性的继承父类
子类最多只能继承一个父类(指直接继承)
多态:就是一个引用在不同情况下的多种状态
抽象:就是把一类事物的共有的属性和行为提取出来,形成一个物理模型(模板)
11. 方法重载(overload)
就是累的同一种功能的多种实现方式,到底采用哪种方式,取决于调用者给出的参数
注意事项:
1、方法名相同
2、方法的参数类型、个数、顺序至少有一项不同
3、方法的返回类型可以不同
4、方法的访问修饰符可以不同
5、如果仅仅是返回类型或者修饰符或者两者都不相同,不能构成方法重载
方法覆盖(override)
1、子类的方法的返回类型、参数、方法名称要的父类的返回类型、参数、方法名称完全一样,否则编译出错
2、子类的方法不能缩小父类方法的访问权限
3、重写的方法不能比被重写的方法抛出更宽泛的异常(子类的方法不能扩大父类方法的异常)
4、发生在具有继承关系的两个类之间
5、私有的方法不能被覆盖
6、构造方法不能被覆盖,因为构造方法不能被继承
7、静态的方法不存在覆盖
8、覆盖指的是成员方法,和成员变量无关
12.实现接口与继承类:
java的继承是单继承,这种单继承可以保证类的纯洁性,但对类的扩展有一定的影响:实现接口可以看作是对继承的一种补充
继承是底层式的,不太灵活,而实现接口可以在不打破继承关系的前提下,对某个功能扩展,很灵活
接口就是给出一些没有内容的方法,封装到一起,到某个类要使用的时候,再根据具体情况把这些方法写出来:
class 类名 implements 接口
{
变量;
方法;
}
接口是更加抽象的类,抽象类里的方法可以有方法体,接口里的所有方法都没有方法体
接口体现了JAVA编程的多态和高内聚低耦合的设计思想
接口-----注意事项
1、接口不能被实例化
2、接口中所有的方法都不能有主体
3、一个类可以实现多个接口
4、接口中可以有变量(但是变量不能用private和protected修饰)
a、接口中的变量,本质上都是static的,而且是final类型的,即必须初始化,不管加不加static修饰
b、在JAVA开发中,常常把经常用的变量定义在接口中,作为全局变量。访问形式: 接口名.变量名
5、一个接口不能继承其它的类,但是可以继承别的接口
抽象类:
1、用abstract关键字来修饰一个类时,这个类就是抽象类
2、用abstract关键字类修饰一个方法时,这个方法就是抽象方法
抽象类---注意事项
1、抽象类不能被实例化
2、抽象类不一定要包含abstract方法,即抽象类可以没有abstract方法
3、一旦类包含了abstract方法,则这个类必须声明为abstract方法
4、抽象方法不能有主体
13. 前期绑定:在编译的时候可以确定的类型称为前期绑定
final变量的定义:rate_aaa_bbb(下划线法),一般不用驼峰法
final----概念:
final可以修饰变量或是方法;
1、当不希望父类的某个方法被子类覆盖(override)时,可以用final关键字修饰
2、当不希望类的某个变量的值被修改,可以用final修饰
3、当不希望类被继承时,可以用final修饰
final----注意事项:
1、final修饰的变量又叫常量,一般用xx_xx_xx类命名
2、final修饰的变量在定义时,必须赋值,并且以后不能再赋值
final----什么时候用
1、因为安全的考虑,类的某个方法不允许被修改
2、类不会被其他的类继承
3、某些变量的值是固定不变的,比如圆周率
14. 二进制-----原码、反码、补码
对有符号的而言:
1、二进制的最高位是符号位:0表示正数;1表示负数
2、正数的原码、补码、反码都一样
3、负数的反码 = 它的原码符号位不变,其他位取反
4、负数的补码 = 它的反码 + 1
5、0的反码、补码都是0
6、Java没有无符号数,换言之,java中的数都是有符号的
7、在计算机运算的时候,都是以补码的方式来运算的
>> <<算术右移和算术左移,运算规则:
算术右移:低位溢出,符号位不变,并用符号位补溢出的高位
算术左移:符号位不变,低位补0
>>>
逻辑右移:低位溢出,高位补0
15. 排序:
内部排序:冒泡法、选择法、插入法、快速排序(有时间了解,最好弄懂并记下来)
外部排序:合并排序法、直接合并排序法
16. Java的底层是C++。
Java语言特性:
简单性, 面向对象,可移植性(一次编译,到处运行),健壮性(自动垃圾回收机制,GC),多线程
Java的加载与执行
编译
**.java(源文件)---------->**.class(字节码文件)----->类装载器(ClassLoader)
----->Java虚拟机(JVM)----->操作系统----->硬件平台
23. int i;
for(i=5, int j; j < 10; j++){} (这样写是错的)
int i, j;
for (i=5, j; j < 10; j++){}
或者 for (int i=5, j; j < 10; j++){}
在dos命令行输入:java Demo Good Morning 只有Good Morning成为args[]的元素
String: String a = "abc";
String b = "abc";
会先到字符池里寻找指向“abc”的引用,此时a == b的结果是true
String a = new String("abc");
String b = new String("abc");
不会涉及到字符池,此时 a == b的结果是false
|
|