关于java基础语法小记录
这是一个关于java基础部分的语法的小记录,主要针对易忘点和难点。
1.关于增强for循环
//增强for循环
sum=0;
int[] num={1,2,3,4,5};
for(int x:num){
System.out.println(x);
}
//等价于
for (int i=0;i<5;i++){
System.out.println(num[i]);
}
System.out.println(sum);
}
2.关于Scanner函数用法问题
在制作最简单的计算机过程中,判断输入退出条件时,如下图,hasnext()和hasnextDouble()的便利性是不同的。具体问题用具体方法才最好。
System.out.print("请输入运算:");
Scanner sc=new Scanner(System.in);
//判断是否还需要输入数,用hasNextDouble()判断就可以,直接在第一个输入E就退出
//while(sc.hasNext()时,需要输入A # B 才可以退出
while (sc.hasNextDouble()){
double a=sc.nextDouble();
String s=sc.next();
double b=sc.nextDouble();
3.面向对象
在类中必须有构造方法,idea中使用alt+insert+shift构造全部属性的有参构造方法
public class Student {
//构造方法必须和类名相同并且没有返回类型
//显式定义构造器
String name;
int age;
//对属性赋初始值
//作用,1.使用new必须有构造器才能创建调用
//2.对属性赋初始值
public Student(){
//this.name="张凯";//说明Person类默认name是张凯
}
//有参构造器:一旦定义有参构造,午餐构造必须显式
public Student(String name){
this.name=name;
}
//alt+lnsert生成构造器+shift多选参数
public Student(String name, int age) {
this.name = name;
this.age = age;
}
}
继承
//ctrl+h展示家族关系
//只有public公共的才能被子类继承
//public(默认)
//protected
//default
//private
子类无参构造器默认会调用父类的无参构造器
public Student() {
//实际上默认调用了父类的无参构造犯法
super();//调用父类构造器必须在子类第一行
System.out.println("student执行");
}
**方法的重写,指的是方法名相同,参数也一致,子类去重新修改父类的非静态方法
**方法的重载,指的是同类的方法,方法名相同,但参数不一致,为的是两个方法做不同的功能。
多态
存在条件:继承关系,方法需要重写,父类引用指向子类对象
不能重写的类型:static从属与类,不属于实例
finall
private私有方法
把子类转换为父类,向上转型;
把父类转换为子类,向下转型(强制转换)**可能丢失父类本身一些方法。