JAVA 入门基础注意点

java基础回顾

- 默认就是判断是否为true,所以可以省略不写
    boolean b = true;
    if(b==true){}
    if(b){} 

- 数字之间可以用下划线分割,输出结果不会有下划线
    int money = 10_0000_0000;
    int a = 20;
    long b = a*money;
  计算结果为-1474836480溢出了
  先把一个数转为long 结果为200000000
    long = a*((long)money);

- 字符串在前后面的数值会拼接,如果在后会运算
    System.out.println(1+1+"");//2
    System.out.println(""+1+1);//11

- javadoc 生成类文档
    IDEA-->Tools-->Generate JavaDoc
    Doc-->javadoc -encoding UTF-8 -charset UTF-8 Number.java
        
- Scanner 扫描仪对象java.util.Scanner,通过它来获取用户的输入
  public static void main(String[] args) {
        //创建Scanner对象,获取键盘输入
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入数据:");
        //nextLine()以回车为结束符next()以空格为结束符
        String str = scanner.nextLine();
        System.out.println("我输出了:"+str);
        //io流使用完需要关闭
        scanner.close();
    }

- for(初始化值int i=1;条件判断i<=10;迭代i++)
 死循环代码 没有条件判断值
	for(;;){ 
        System.out.println("我限循环");
    }
 每行输出三个数据 二个就是10 四个就是20 五个就是 25 以此类推
	if (i%15==0){
        System.out.println();
    }	

- 九九表
	  for (int i = 1;i <=9; i++) {
            for (int j = 1;j <=i; j++) {
               System.out.print(j+"*"+i+"="+j*i+"\t");
            }
            System.out.println();
        }

- 可变长参数 可以传入很多同类型参数 必须是最后一个参数而且只能有一个
	public void ceShi(int a,Double... b){}

- 使用new关键字,本质是在调用构造器,构造器用来初始化值
	public Student(){}
  有参构造:一旦定义了有参构造,无参构造就必须显示定义
	String name;
	public Student(String 形参){
        this.name = 形参;
    }

- 属性私有set/get就是封装
  1.提高程序安全性,保护属性数据
  2.隐藏代码实现细节,可增加业务代码
  3.统一接口
  4.系统可维护性增加
  三元运算符 age后边是条件判断 ?如果达成条件执行 :属于else
	 public void setAge(int age) {
        this.age = age > 120 ? 3 : age;
    }
 
  • super:

    1. super 调用父类的构造方法,必须在构造方法的第一个
    2. super 只能出现在子类的方法和构造方法中!
    3. super 和 this 不能同时调用构造方法!
  • this:

    1. this 代表调用本类的属性和方法 super 代表调用父类中的属性和方法
    2. this 没有继承也可以使用 super 只能在继承条件下使用
    3. this(); 调用本类构造 super(); 父类的构造!
  • 重写:

    1. 需要有继承关系,子类重写父类的方法!
    2. 修饰符,范围可以扩大,但不能缩小,private不能重写
    3. 抛出的异常,可以被缩小,不能被扩大
    4. 方法名必须相同,参数列表必须相同,方法体不同!
    5. ps:而重载是在同一个类 println()就是一个最常使用的"重载"方法 System.out.println(); 他可以根据不同参数,调用不同方法,输出不同结果
  • 多态:

    1. 多态是方法的多态,属性没有多态

    2. 必须有继承关系,不然就不叫多态,子类重写父类方法,父类引用指向子类对象

    3. 子类能调用的方法都是自己的或者继承父类的

    4. 父类可以指向子类,但是不能调用子类独有的方法

    5. 对象执行哪些方法,主要看对象左边的类型,是谁就执行谁的,如果都有执行子类,

    6. Object是所有类的父类

      Student student = new Student();
      Object student1 = new Student();
      Person student2 = new Student();
      
  • static:

    1. 非静态方法可以直接访问类中的静态方法
    2. 静态方法可以调用静态,但是不能调用非静态 ps:因为静态方法随类一块加载,加载之前都没有非静态方法,所以不可以
    3. 静态代码块只执行一次,匿名代码块随对象创建执行(可以赋初始值),都在构造方法之前执行
  • 抽象类:

    1. 抽象类的所有方法,继承他的子类(除非子类也是抽象),都必须要去实现
    2. 抽象类不能new(不能实例化),只能被继承和实现
    3. 抽象类可以包含属性,方法,构造方法
    4. 抽象类的意义:把一系列相同的属性封装到一起,继承他的子类除了要必须实现它的方法之外,然后对自己特有的属性和方法进行补充即可,这样就对代码的维护和重用有益
  • 接口:

    1. 接口中只有方法的定义,让不同的类实现
    2. 一个类只能继承一个类,但可以实现多个接口,实现后必须重写接口中的方法
    3. public class me extends Student implements a,b;
    4. 接口没有构造方法,也不能被实例化
  • 异常:

     try {  监控区域代码块
        System.out.println(a/b);
     }catch (Throwable e){ 解决异常代码块
        System.out.println("发生了异常");
     }finally { 
        System.out.println("无论怎么样都会被执行");
     }
     IDEA快捷键 Ctrl+Alt+T
     方法中 throw 抛异常,方法上 throws 抛异常    
    

猜你喜欢

转载自blog.csdn.net/weixin_44905070/article/details/104767199