主题:[讨论]Java开发中该注意的一些东西
java的类型自动提升规则
1、所有byte,short,char型的值将被提升到int型;
2、如果一个操作数为long型,计算结果就是long型;
3、如果一个操作数是float型,计算结果就是float型;
4、如果一个操作数是double型,计算结果就是double型。
我们不能把任何方法体内的变量声明为静态,例如下面这样是不行的
fun{ static int i = 0; }
1、在静态的方法里只能直接调用同类中其他静态成员(包括变量和方法),而不能直接访问类中的非静态成员,这是因为,对于非静态成员,先要创建类的实例对象后才可使用,而静态成员在使用前是不需要实例化的;
2、静态方法不能以任何形式引用this或super关键字;
3、main()方法是静态的,因此jvm在执行main方法时,不创建main方法所在的类的实例对象,因此在main方法中,不能直接访问该类中的非静态成员。
1.final标记的类不能被继承;
2.其标记的方法不能被子类重写;
3.其标记的变量即变成常量,只能赋值一次,但这个常量也只能在这个类内部使用,不能在类的外部使用,且赋值只能在声明的时候显式赋值或在构造方法中赋值,构造方法里不含返回值的概念是不同于“void”的,对于"public void example()"这样的写法就不再是构造方法了,而变成了普通方法,很多人都会犯这种错,在定义构造方法时加了void,结果这个方法就不再自动调用了。
1.java只支持单继承,不允许单继承,但一个类可以被多个类继承;
2.可以有多重继承,即一个类可以继承某个类的的子类,如B继承了A,C又可以继承B,那么C也间接继承了A;
3.子类继承父类所有的成员变量和成员方法,但不继承父类的的构造方法,在子类的构造方法中,可以使用语句super调用父类的构造方法;
4.如果子类的构造方法中没有显式地调用父类构造方法,也没有使用this关键字调用重载的其他构造方法,则在产生子类的实例对象时,系统默认调用父类无参数的构造方法,如果父类没有无参数的构造方法,则编译出错。
在子类中可以根据需要对从父类中继承来的方法进行改造——方法的覆盖(也叫重写)。覆盖方法必须和被覆盖方法具有相同的方法名称、参数列表和返回值类型子类想调用父类的被覆盖的方法,可以用super.方法()的格式。
1、所有byte,short,char型的值将被提升到int型;
2、如果一个操作数为long型,计算结果就是long型;
3、如果一个操作数是float型,计算结果就是float型;
4、如果一个操作数是double型,计算结果就是double型。
我们不能把任何方法体内的变量声明为静态,例如下面这样是不行的
fun{ static int i = 0; }
1、在静态的方法里只能直接调用同类中其他静态成员(包括变量和方法),而不能直接访问类中的非静态成员,这是因为,对于非静态成员,先要创建类的实例对象后才可使用,而静态成员在使用前是不需要实例化的;
2、静态方法不能以任何形式引用this或super关键字;
3、main()方法是静态的,因此jvm在执行main方法时,不创建main方法所在的类的实例对象,因此在main方法中,不能直接访问该类中的非静态成员。
1.final标记的类不能被继承;
2.其标记的方法不能被子类重写;
3.其标记的变量即变成常量,只能赋值一次,但这个常量也只能在这个类内部使用,不能在类的外部使用,且赋值只能在声明的时候显式赋值或在构造方法中赋值,构造方法里不含返回值的概念是不同于“void”的,对于"public void example()"这样的写法就不再是构造方法了,而变成了普通方法,很多人都会犯这种错,在定义构造方法时加了void,结果这个方法就不再自动调用了。
1.java只支持单继承,不允许单继承,但一个类可以被多个类继承;
2.可以有多重继承,即一个类可以继承某个类的的子类,如B继承了A,C又可以继承B,那么C也间接继承了A;
3.子类继承父类所有的成员变量和成员方法,但不继承父类的的构造方法,在子类的构造方法中,可以使用语句super调用父类的构造方法;
4.如果子类的构造方法中没有显式地调用父类构造方法,也没有使用this关键字调用重载的其他构造方法,则在产生子类的实例对象时,系统默认调用父类无参数的构造方法,如果父类没有无参数的构造方法,则编译出错。
在子类中可以根据需要对从父类中继承来的方法进行改造——方法的覆盖(也叫重写)。覆盖方法必须和被覆盖方法具有相同的方法名称、参数列表和返回值类型子类想调用父类的被覆盖的方法,可以用super.方法()的格式。

您所在位置: