1.java中所有的浮点类型数字默认都是double型,赋值给float需要强制类型转换
2.switch(变量)变量可以使int byte short char型
3.多态的概念 子类就是父类或者说 父类的引用可以访问子类的对象
如 people 表示父类,父类有一方法 think(),man表示子类
people aaa=new man();
aaa.think();
4.抽象类 关键字abstract class,抽象类无法实例化,不能用new实例化出抽象类的对象
抽象方法只能定义在抽象类中,只有声明没有实习 如abstrat void method();
5.子类继承父类(父类是抽象类)的情况下,那么子类必须实现父类定义的所有抽象方法,否则子类必须声明为抽象类
1接口中的所有方法都是抽象方法,在声明接口方法的时候可以使用abstract关键字,也可以省略,通常省略。
2类可以实现接口,实现使用关键字implements表示,代表了某个类实现了某个接口 并且一个类实现了某个接口,那么该类必须要实现接口中声明的所有方法,如果该类是个抽象类,那么就无需实现接口中的方法了。
interface Myinterface
{
public void output();
}
class Myclass implements Myinterface
{
public void output()
{
System.out.println(" output");
}
}
3.一个类只能进行单继承,但可以实现多个接口,多个接口之间用逗号隔开,可以在单继承的同时实现多个类
4.Static可以修饰属性 方法和类
Static修饰属性:无论一个类生成了多少属性,所有这些对象共同使用唯一一份静态变量;一个对象对该静态变量进行了修改,其他对象的该静态变量的值也随之发生变化。如果一个成员变量是static的,那么我们可以通过类名.成员变量名的方式使用它(推荐这种方式)
Static修饰方法:也可以通过类名.成员方法使用
5静态方法只能继承,不能重写(Override)
Public class StaticTest3
{ public static void main(String[] args)
{
M m=new N();
m.output();
}
}
Class M
{ public static void output()
{
System.out.println(“M”);
}
}
Class N extends M
{ public static void output()
{
System.out.println(“N”);
}
}
结果是 M
6.Final关键字 ,final可以修饰属性 类和方法
Final修饰的类是终态类,不能被继承
Final 修饰的方法不能被重写
Final修饰属性 :当一个属性被Final修饰时表示该属性不能被改写
7. 对于final类型成员变量,一般来说有两种赋初值方式:
a) 在声明final类型的成员变量时就赋上初值
b) 在声明final类型的成员变量时不赋初值,但在类的所有构造方法中都为其赋
8.
static代码块:静态代码块。静态代码块的作用也是完成一些初始化工作。首先执行静态代码块,然后执行构造方法。静态代码块在类被加载的时候执行,而构造方法是在生成对象的时候执行;要想调用某个类来生成对象,首先需要将类加载到Java虚拟机上(JVM),然后由JVM加载这个类来生成对象。
执行后 static block
P constructor
P constructor
9.
类的静态代码块只会执行一次,是在类被加载的时候执行的,因为每个类只会被加载一次,所以静态代码块也只会被执行一次;而构造方法则不然,每次生成一个对象的时候都会调用类的构造方法,所以new一次就会调用构造方法一次。
10.
如果继承体系中既有构造方法,又有静态代码块,那么首先执行最顶层的类的静态代码块,一直执行到最底层类的静态代码块,然后再去执行最顶层类的构造方法,一直执行到最底层类的构造方法。注意:静态代码块只会执行一次。
11.
总结:静态的只能访问静态的;非静态的可以访问一切。
12.一个类不能既是abstract 又是final
接口中所声明的方法都是抽象方法。接口中的方法都是public的。
2. 接口中也可以定义成员变量。接口中的成员变量都是
public、
final、
static的。
3. 一个类不能既是final,又是abstract的。因为abstract的主要目的是定义一种约定,让子类去实现这种约定,而final表示该类不能被继承,这样abstract希望该类可以被继承而final明确说明该类不能被继承,两者矛盾。因此一个类不能既是final的,又是abstract的
4.使用编译参数–d,方式为javac –d . 源文件.java,这样在编译后,编译器会自动帮助我们建立好包所对应的目录结构
本文出自 “天天随笔” 博客,转载请与作者联系!