【笔记】Java基础

基本安装

jdk 11
idea 社区版本

基本语法

项目结构

项目-》src-〉类(首字母大写)
编译:将Java语言通过编译器jre,变成class语言,然后执行

java注释

//单行注释
/** /文档注释
/
*/多行注释

常用快捷键

  • psvm : 快速输入public static void main
  • sout :快速输入:system.out.print(");

##基本数据类型


变量名命名规则:字母、数字、$ _,不能使用保留字,严格区分大小写
未定义,整数默认int,小数默认double

类型转换

  • 自动类型转换:防止精度丢失,往大范围转换
    image

  • 强制类型转换:从大范围往小强行赋值
    double d1 = 3.14;
    int i1 = (int) d1;

运算符±*/ ++ –

关系运算符

逻辑运算符 与 或 非

判断条件语句

  • if else 少数判断
    *三元运算符:条件判断?表达式A:表达式B
    A是符合条件,B是不符合条件
  • switch 多个判断
    image

循环语句

  • for循环:先判断再循环体, for(int i=1;i<10;i++){
  • while循环:先判断再循环体
    int i = 1;
    while (i<10){
    System.out.println(i);
    i++;
    }
  • do while循环:先循环体,再判断
  • 跳转关键字

跳转语句

Continue : 跳过本次循环,继续循环
break:跳出此循环;

数组

声明方式:

元素数据类型 数组名称;
元素数据类型 数组名称;

数据初始化

动态:数据类型 数组名称 = new 数据类型[长度];
静态:int arrayA3 = {1,2,3};

数组的长度

数组.length

二维数组

int arratA = new int[2][3];
int arrayB = new int{{1,2,3},{4,5,6}};

方法

方法必须在类里面,是某个功能的集合,然后把结果返回给调用者,小驼峰命名,第一个单词首字母小写,后面的大写


方法重载

一个类中,方法名相同,参数不同的方法


默认有构造方法:public 类名

面向对象

封装、继承、多态

类:属性(成员)、方法(能做什么),类名每个单词首字母大写

image
image

  • 成员变量有默认值,局部变量无默认值;
  • 成员变量修饰符:public private static

封装:使用private修饰成员变量,再创建对应的getter(获取) setter(设置)方法(可用快捷键command+n)

  • private:私有,只能在本类中访问,可用于修饰变量或方法
  • 记得用this指向,this表示所在类的当前对象的引用,及对象自己的引用
    image

继承:子类继承父类,子类可直接访问父类的非私有属性和行为,同时具有与父类相同的属性和行为:class 子类 extends 父类

  • 子类只能继承一个父类,但可以多层继承 public class A ,public class B extends A,public class C extends B;
  • 子类不能直接访问父类中private得成员和方法;
  • 子类成员变量与父类同名,则优先使用父类的成员变量,非要访问父类,可用super.成员变量名;

重写:子类与父类同名的方法

  • 默认使用子类的,非要用父类,用doSuper()

抽象类和抽象方法

  • 抽象类:用abstract修饰的类
  • 抽象方法:用abstract修饰的方法,没有方法体,及大括号
  • 抽象类中,不一定有抽象方法,有抽象方法的类一定是抽象类
  • 抽象类中的普通子类必须重写父类中的所有抽象方法,除非子类也是抽象类;

接口

不能创作对象,但是可以被实现,是方法的集合

接口声明

接口的实现:类名+ implement+接口


//常量- final
public static final int age = 20;
//抽象方法- abstract
public abstract void eat();

//默认方法- default
public default void run(){
    System.out.println("这是一个默认方法default");
}

//静态方法- static
public static void jump(){
    System.out.println("这是一静态方法");
}

//私有方法- private
private void cat(){
     System.out.println("这是一个私有方法");
}

接口的实现类

一个实现类实现多个接口
image

  • 实现类必须重写所有的抽象方法,如果抽象方法重名,则只需要重写一次
  • default接口方法,必须在实现类中重写

父类与接口的优先级

public class 子类A extends 父类B implents 接口C,接口D{}

  • 父类成员方法和接口默认方法重名,子类优先执行父类的方法;
  • 接口的多继承,多继承方法名相同必须得重写;

多态

父类引用指向子类对象:
image

final 最终的

  • 修饰类:不可被继承,但可以有父类
  • 修饰方法:不可以修饰构造方法,不可被子类覆盖
  • 修饰变量:不可更改,只能被赋值一次

static 关键字

static是对于这个类所有实例都只有这一块存储地址,如果一个方法修改了内容,后面又一个方法修改,会被覆盖,后面不改可直接调用,则是最新一次的内容,调用方法:类.成员名