1.java最大的特点:跨平台性
2.(String【】 args)参数类型:字符串数组
3.java用命令进行时
(1)javac hello.java 编译后有几个类就会出现几个.class
(2)java hello(有main的类,也就是主类) 编译后的运行
4.关键字都是小写的,标识符对大小写敏感
5.精度由高到低需强转
byte-> short -> int -> long -> float -> double
例(1) long y = (long)34.78
(2)float x=12.4 (✖)
float x= (float)12.4 (✔)
6.数字,字母,下划线是有效字符
7.&:按位与
&&:逻辑与
||:逻辑或 (这两个是会短路的,只要有假就不会往后判断)
异或运算性质:a^a=0 a^0=a
8. == :等于 = :赋值
9. 数组的一个局限性是:数组大小不能动态的发生改变
10.Java语言是 1995 年由 Sun 公司第一次正式公布的,James Gosling 被誉为Java之父。
1.成员变量在整个类内部都有效,有默认值.
局部变量只在方法内有效
this. 可用隐藏的成员变量
2.方法重载(两同一不同)
同类,同方法名;参数个数或参数列表或参数顺序不同。
3.构造方法
与类名相同,无类型,无返回值,可有参,可重载
4.java每个类都有一个构造方法(若无定义,则系统默认产生)
5.实例变量只可通过对象访问,不能用类名访问
6.静态方法只能直接访问静态变量/方法。
7.this 不能出现在静态方法中
8.定义包的package语句必须是java程序第一条
9.java类访问控制关键字
作用域 | 当前类 | 同包 | 子类 | 其他 |
---|---|---|---|---|
public | ✔ | ✔ | ✔ | ✔ |
protected | ✔ | ✔ | ✔ | ✖ |
default | ✔ | ✔ | ✖ | ✖ |
private | ✔ | ✖ | ✖ | ✖ |
10.this使用该构造方法创建的对象,此时this可省略。当构造方法的星灿明语气索要初始化的成员变量名相同时,不能省
super()//调用特定的构造方法
super.方法()//调用重写的方法
super .成员变量 //访问父类中被隐藏的成员变量
多态性
8.子类转向父类(向上) 自动转型(父=子)
父类转向子类(向下) 强制转型(子=(子)父)此时的父类 是上转对象,也就是说没有上就没有下
9.上转型对象能访问(1)继承或隐藏的变量(2)继承或重写的方法
不能访问(1)新增的变量(2)新增的方法
1.常量,一旦赋值无法改变
2.一个对象在创建过程中往往被赋值三次,但有了final之后系统不会再赋初始值
3.如果final实例变量可在初始化属性或构造方法中赋值;若final类变量,可在初始化属性或静态初始化代码块中赋值,一般都写成 static final A=10;
4.final可以修饰:类、变量、方法
特点:不能继承(类不能继承,方法能继承过去,但要直接用,不能被重写)、不能覆盖、不能重写
5.如何定义一个全局常量 public static final
6.当左面的操作元是右面的类或其子类创建的对象时,instanceof运算结果是true,否则false。(instanceof用来检测是不是类)
7.可以有抽象方法,抽象方法:只允许生命,不允许实现,不能new去实例化
8.含有抽象方法的类必须被负责声明为抽象类,抽象列的子类必须重写所有的抽象方法
9.抽象类可以有构造方法版不能用final,因为抽象类是用来做爸爸的,但final类不能被继承
10.接口包括:接口的声明和接口体,接口体包括:常量定义和方法定义
11.接口体中只进行方法的声明,不提供实现,所以没有方法体
interface P{
(public static)final int M=100;
(public static)float Sum(float x,float y)
}
12.重写接口时,一定要加上public(因为接口里会隐藏)
13(1)
interface 接口A extends 接口1、2、3、、、{
//继承
}
(2)
class Dog extends Animal implements E、S{
}
14.接口中public接口可被任一类实现,而default接口只能同包发现
15.包括:成员内部类,局部、、、,静态、、、,匿名、、、
16.调用外部同名成员: OuterClass.this.age
调用本类同名成员: this.age
17.外部类不能直接访内部类私有成员,但可以通过对象调用
18.条件:必须继承一个父类或实现一个接口(最多只有一个)
19.格式:new 类名/接口( ){重写或实现的方法;} 。这个类名中可以有抽象类
20.代码实现
匿名内部类实现(前提是前面一定有父类/接口)
(1)
new A( ){
public void a( ){
Syso..( );}
}.a( );
(2)
A a1=new A( ){
public void a( ){
Syso...( );}
};
a1.a( );
21.匿名内部类中无构造方法,不能是抽象类
22.本质是继承一个类或实现一个接口的匿名子类对象