基础复习:
- byte、short、char类型的任意两个数据想要进行运算操作,都会先转换成int类型,再进行运算操作。final修饰的变量例外。
- 由于是final类型的,因此不会自动转换成int类型,所以和的类型视左边变量类型而定。
小小代码:(1)
class D { public static void main(String[] args) { int a = 5; int b = 2; int c = a / b; double d = (double) a / b; System.out.println("c = " + c); System.out.println("d = " + d); } }
小小代码:(2)
class Supper { public int get() { System.out.println("supper"); return 5; } } public class Sub { public int get() { System.out.println("Sub"); return new Integer("5"); } public static void main (String args[]){ new Supper().get(); new Sub().get(); } }
子类中不能覆盖父类中声明为static的方法
从Java 8开始,接口当中允许定义静态方法。 在抽象类中可以有构造方法,只是不能直接创建抽象类的实例对象,但实例化子类的时候,就会初始化父类,不管父类是不是抽象类都会调用父类的构造方法,初始化一个类,先初始化父类。 全局成员变量可以直接被static、final同时修饰。
private修饰的成员变量
只能被该类自身所访问和修改
- 访问权限 类 包 子类 其他包
- public ∨ ∨ ∨ ∨
- protect ∨ ∨ ∨ ×
- default ∨ ∨ × ×
- private ∨ × × ×
继承:
一个类可以具有多个子类
public class Demo{ static { System.out.println("Demo static block"); } public Demo() { System.out.println("Demo"); } } class Test extends Demo { static { System.out.println("Test static block"); } public Test() { System.out.println("Test"); } public static void main(String[] args) { Test test = new Test(); } }
方法重载:
方法重载要求方法名称必须相同
重载方法的参数列表必须不一致
一个类的构造方法可以有多个
Boolean :
不是Java的原始数据类型
- Java有哪些基础数据类型
整数类型(byte,short,int,long)
浮点类型(float,double)
字符型(char)
布尔型(boolean)
- Java中Break,Continue,Return的区别及作用
break 跳出总上一层循环,不再执行循环(结束当前的循环体)
continue 跳出本次循环,继续执行下次循环(结束正在执行的循环 进入下一个循环条件)
return 程序返回,不再执行下面的代码(结束当前的方法 直接返回)
- java成员变量与局部变量的区别
(1)从语法形式上看,成员变量是属于类的而局部变量是在方法中定义的变量或是方法的参数;成员变量可以被public、private,static等修饰符所修饰,而局部变量则不能被访
问控制修饰符及static所修饰;成员变量和局部变量都可以被final所修饰。
(2)从变量在内存中的存储方式上看,成员变量是对象的一部分,而对象是存在于堆内存的,而局部变量是存在于栈内存的。
(3)从变量在内存中的生存时间上看,成员变量是对象的一部分,它随着对象的创建而存在,而局部变量随着方法的调用而产生,随着方法调用的结束而自动消失。
(4)成员变量如果没有被赋初值,则会自动以类型的默认值赋值(有一种情况例外,被final修饰但没有被static修饰的成员变量必须显式地赋值);而局部变量则不会自动赋值,必须显式地赋值后才能使用。
Java面向对象编程的三大特性
封装,继承,多态
Java普通类和抽象类有哪些区别
普通类不能包含抽象方法,抽象类可以包含抽象方法。
抽象类不能直接实例化,普通类可以直接实例化。