『Java』Java当中会有那些误区?


『Java』Java当中会有那些误区?
Java修饰符的访问权限
Java输入易错区
Scanner对象输入时 , next()、nextInt()等next开头的方法(nextLine()除外)会扫描缓冲区内容 , 如果为空 , 则扫描输入的内容 , 扫描到第一个分隔符前结束并返回 。 第一个分隔符后面的所有内容都会存在键盘缓存区 。 再次一个next()方法扫描缓冲区时 , 会扫描第一个分隔符后面的内容(不包括分隔符 , 扫描到下一个分隔符停止)然后返回 。 next()扫描完缓冲区到回车时 , 不会结束回车 。
nextLine()方法会先扫描缓存区内所有内容(包括间隔符 , 不包括回车)并返回 。 扫描完后会结束回车 。
因此在前面输入时调用非nextLine()方法 , 后面要先写一个scanner.nextLine();来扫描掉这个回车 , 在使用nextLine()来输入 。
Java类型强制转换
byte、short、char、int、long、float、double
——————>从低到高可以依次自动转换
变量类型 变量名 = (强转类型=前面变量类型)被转换变量名
适用8中基本类型之间
Integer.parseInt(string);
String 转换为 int
String a=new String(byte类型数组名);
byte 转换为 String
String a=new String(char类型数组名);
char 转换为 String
byte 对象名=Byte.valueOf(字符串)
将字符串String类型转换为byte类型并赋值给“对象名”
Java方法@Override(重写)与@Overload(重载)
@Override(重写=覆盖)——>子类重写父类方法体 , 但方法名和参数相同
@Overload(重载=重构)——>写一个新的方法 , 方法名相同 , 参数不同
Java多态详解
当一个抽象类为Animal 他的子类为Dog
Animal dog=new Dog();
编译时为Animal 运行时为Dog
=前的类名决定了代码提示展示的内容 编译时类型 决定可以调用那些属性和方法
=后的类名(构造方法)决定了对象类型 运行时类型 决定属性和方法是否们能够调用
Java的finally修饰词
修饰的类为最终类 , 不能被继承 。
可以修饰方法 , 修饰的方法不能被覆盖。
可以修饰属性 , 修饰的属性不能在任何地方被修改 , 这个属性被创建时就要有值 。
abstract:(抽象的)
修饰类 , 该类为抽象类 抽象类不能被实例化
修饰方法要去掉方法作用域 , 并在方法结尾加“;”
抽象方法只能出现在抽象类中 , 非抽象类不能有抽象方法
只有抽象类和方法 , 没有抽象属性
子类除非实现父类的所有抽象方法 , 否则子类必须是抽象类(接口同样)
匿名类
一个抽象的类实例化时需要实现抽象方法 , 例如:
Animal animal=new Animal() {
@Override
public void move() {
System.out.println(\"水里游得\");
;
看似创建抽象类的对象 , 实质上是创建了抽象类的子类 , 覆盖子类方法并实现
由于创建的子类没有名字 , 因此称为匿名类
animal是创建的对象 Animal是抽象父类 匿名类是创建的子类
匿名对象
People p1=new People();———>People p1=new People();
Dog dog=new Dog(); —————>p1.pet=new Dog();
p1.pet=dog; ————————>没有声明对象名 , 因此为匿名对象 , 只能调用这一次
intterface:(接口)
接口:接口不能添加属性、方法
可以添加抽象方法 , 方法的public abstract可以不用写
接口可以让两个毫无相关的类实现相同的方法
实现接口的类必须实现接口全部抽象方法 , 否则该类必定是抽象类
接口是用来被实现的 , 不能创建对象


推荐阅读