后端零
看录课听的不是很清楚,凑合看哈哈。
先来一段代码镇镇场子
public class Main {
    public static void main(String[] args) {
        System.out.println("Hello world!");
    }
}
JAVA的开发环境
- JDK:Java Development Kit(java开发工具包)包含java的开发工具和JRE
 - JRE:Java Runtime Environment(java运行环境)包含JVM
 - JVM:Java Virtual Machine(java虚拟机)识别
.class文件,可实现跨平台运行 
开发工具
IDE:集成开发环境
JAVA语法
基本语法
- 注释(直接上代码)
 
//这是单行注释。
//可以多写几行。
/*
也可以像这样直接用多行注释,
这样也挺好。
*/  
- Java程序由一个或多个类(类是Java程序的基本组织单元,用于封装属性和方法。)组成,每个类由类名、属性和方法(方法是一段可重复使用的代码块,用于执行特定任务。)构成。
 - Java语句以分号结尾。
 - 用
{}来定义代码块。 
标识符
命名
- 字母、数字(不开头)、下划线、美元符号,不能用
关键字和保留字,不能空格。 - 类名和接口名首字母大写,变量名和方法名首字母小写,采用Camel-Case(驼峰命名)。
 - 最好反应意义。
 
变量
在Java中,变量是用于存储数据的一种方式。使用变量时需要先声明变量,然后在程序中使用该变量。
| 类型 | 作用域 | 备注 | 
|---|---|---|
| 局部变量 | 方法或代码块 | 非静态,需初始化 | 
| 成员变量 | 类 | 跟随对象 | 
| 静态变量 | 类 | 静态,不需初始化 | 
数据类型
这个大多数是我自己查的。 (>_<)
| 数据类型 | 描述 | 默认值 | 大小(字节) | 
|---|---|---|---|
byte | 
有符号的8位整数 | 0 | 1 | 
short | 
有符号的16位整数 | 0 | 2 | 
int | 
有符号的32位整数 | 0 | 4 | 
long | 
有符号的64位整数 | 0L | 8 | 
float | 
单精度浮点数 | 0.0f | 4 | 
double | 
双精度浮点数 | 0.0 | 8 | 
boolean | 
布尔值 true 或 false | false | 1 (近似) | 
char | 
单个字符,用单引号括起来 | '\u0000' (null 字符) | 2 | 
String | 
字符串 | null | 可变 | 
enum | 
枚举类型 | null | 可变 | 
array | 
数组类型 | null | 可变 | 
class | 
类类型 | null | 可变 | 
interface | 
接口类型 | null | 可变 | 
null | 
表示空对象或缺少值 | null | - | 
void | 
用于方法返回类型,表示无返回值 | - | - | 
运算符
| 运算符 | 描述 | 示例 | 
|---|---|---|
| 算术运算符 | 基本的数学运算 | +, -, *, / | 
| 赋值运算符 | 将右侧的值赋给左侧的变量 | =, +=, -= | 
| 关系运算符 | 比较两个值的大小、相等性等 | ==, !=, >, < | 
| 逻辑运算符 | 进行逻辑运算(与、或、非) | &&, 此处是两个竖杠,! | 
控制语句
- 选择
 
- if语句
 
if (score >= 90) {
    grade = 'A';
} else if (score >= 80) {
    grade = 'B';
} else if (score >= 70) {
    grade = 'C';
} else if (score >= 60) {
    grade = 'D';
} else {
    grade = 'F';
}
- switch语句
 
switch (score / 10) {
    case 10:
    case 9:
        grade = 'A';
        break;
    case 8:
        grade = 'B';
        break;
    case 7:
        grade = 'C';
        break;
    case 6:
        grade = 'D';
        break;
    default:
        grade = 'F';
        break;
}
- 循环
 
- for循环
 
for( i = 0 ; i < 520 ; i++ ){
    System.out.println("I love you!");
    }
- while循环(先判断再进入循环)
 
int i = 0;
while( i < 520 ){
    System.out.println("I love you!");
    i++;
    }
- do_while循环(先进入循环再判断)
 
int i = 0;
do {
    System.out.println("I love you!");
    i++;
} while (i < 520);
权限修饰符
- public:任何地方都可以访问该成员,包括类的内部和外部。public成员可以被任何代码访问和调用。
 - private:只有在当前类的内部可以访问该成员,外部无法直接访问和调用。只有同一个类内的其他方员法才能访问该私有成员。私有成对于外部代码是不可见的,这提高了安全性和封装性。
 
重写与重载
没听懂这地方,先抄一下。
方法重写
在子类中定义一个与父类中具有相同名称、参数列表和返回类型的方法。子类中的重写方法可以重新实现父类中的方法逻辑,即提供了一种覆盖父类方法的机制。通过方法重写,子类可以根据自身的需求,对父类的方法进行定制化的实现。
- 方法名、参数列表和返回类型必须与父类中被重写的方法一致。
 - 子类中的重写方法不能比父类中的方法拥有更为严格的访问权限,可以相同或更宽松。
 - 子类中的重写方法不能抛出父类方法未声明的检查异常。
 - 重写方法只能重写非静态方法。
 
方法重载
在同一个类中,可以定义多个方法,它们具有相同的名称但参数列表不同。通过方法重载,可以使得同一个类中的方法具有更多的灵活性和适应性。
- 方法名相同,但参数列表必须不同(参数的类型、个数或顺序)。
 - 方法重载可以具有不同的访问权限修饰符、返回类型以及抛出不同的异常。
 - 方法重载和方法的返回类型无关。
 
继承
允许一个类继承另一个类的属性和方法。
举个例子。
// 定义一个父类Animal
class Animal {
  String name;
  public void eat() {
    System.out.println("Animal is eating.");
  }
}
// 定义一个子类Dog,继承自Animal
class Dog extends Animal {
  public void bark() {
    System.out.println("Dog is barking.");
  }
}
public class Main {
  public static void main(String[] args) {
    // 创建一个Dog对象
    Dog dog = new Dog();
    // 调用从父类继承的方法
    dog.eat();
    // 调用子类特有的方法
    dog.bark();
  }
}
已经累死。。。