基本安装
jdk 11
idea 社区版本
基本语法
项目结构
项目-》src-〉类(首字母大写)
编译:将Java语言通过编译器jre,变成class语言,然后执行
java注释
//单行注释
/** /文档注释
/ */多行注释
常用快捷键
- psvm : 快速输入public static void main
- sout :快速输入:system.out.print(");
##基本数据类型
变量名命名规则:字母、数字、$ _,不能使用保留字,严格区分大小写
未定义,整数默认int,小数默认double
类型转换
-
自动类型转换:防止精度丢失,往大范围转换
-
强制类型转换:从大范围往小强行赋值
double d1 = 3.14;
int i1 = (int) d1;
运算符±*/ ++ –
关系运算符
逻辑运算符 与 或 非
判断条件语句
- if else 少数判断
*三元运算符:条件判断?表达式A:表达式B
A是符合条件,B是不符合条件 - switch 多个判断
循环语句
- 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 类名
面向对象
封装、继承、多态
类:属性(成员)、方法(能做什么),类名每个单词首字母大写
- 成员变量有默认值,局部变量无默认值;
- 成员变量修饰符:public private static
封装:使用private修饰成员变量,再创建对应的getter(获取) setter(设置)方法(可用快捷键command+n)
- private:私有,只能在本类中访问,可用于修饰变量或方法
- 记得用this指向,this表示所在类的当前对象的引用,及对象自己的引用
继承:子类继承父类,子类可直接访问父类的非私有属性和行为,同时具有与父类相同的属性和行为: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("这是一个私有方法");
}
接口的实现类
一个实现类实现多个接口
- 实现类必须重写所有的抽象方法,如果抽象方法重名,则只需要重写一次
- default接口方法,必须在实现类中重写
父类与接口的优先级
public class 子类A extends 父类B implents 接口C,接口D{}
- 父类成员方法和接口默认方法重名,子类优先执行父类的方法;
- 接口的多继承,多继承方法名相同必须得重写;
多态
父类引用指向子类对象:
- 成员方法:可以访问父类的,但不能访问子类有父类无的;
- 左边比右边大可以,左边比右边小必须强制转型(右边)
- 如何知道可以安全转型
final 最终的
- 修饰类:不可被继承,但可以有父类
- 修饰方法:不可以修饰构造方法,不可被子类覆盖
- 修饰变量:不可更改,只能被赋值一次
static 关键字
static是对于这个类所有实例都只有这一块存储地址,如果一个方法修改了内容,后面又一个方法修改,会被覆盖,后面不改可直接调用,则是最新一次的内容,调用方法:类.成员名
- final +static 是常量,则变量名全部大写
- 静态方法:类名.静态方法
静态方法只能访问静态变量