学线后端第零次培训
1.尝试运行一段代码
public class hello {
public static void main(String[] args) {
System.out.println("hello kitty");
}
}
使用技巧:
- 快速生成main方法的方式:输入psvm,回车,程序主入口便会出现。
- 快速写输出语句的方式:输入sout,回车,输出语句自动生成。
- 运行程序:右键点击空白处,点击Run,输出的内容便会在控制台展示出来。
2.基本语法
2.1.注释
单行//
多行/ /2.2.标识符
(1)命名规则
- 关键字
- 保留字
(2)规范
- 类名、接口名:首字母大写,后面每个单词首字母大写
- 变量名、方法名:首字母小写,后面每个单词首字母大写
- 常量名:全部大写,单词与单词之间用下划线连接
(3)变量声明
int age; // 声明一个整数变量
double score; // 声明一个双精度浮点数变量
char grade; // 声明一个字符变量
String name; // 声明一个字符串变量
boolean passed; // 声明一个布尔变量 true/false - 基本数据类型
- 引用数据类型
这里不太懂3.运算符
逻辑运算符
操作符 | 描述 | 例子 | ||||
---|---|---|---|---|---|---|
&& | 称为逻辑与运算符。当且仅当两个操作数都为真,条件才为真。 | ( A && B ) 为假。 | ||||
称为逻辑或操作符。如果任何两个操作数任何一个为真,条件为真。 | ( A | B ) 为真。 | ||||
! | 称为逻辑非运算符。用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false。 | ! ( A && B ) 为真。 |
Lambda表达式
这里也不懂
4.控制语句
-
if else
-
switch
switch (表达式) { case 值1: // 当表达式的值等于值1时执行的代码 break; case 值2: // 当表达式的值等于值2时执行的代码 break; case 值3: // 当表达式的值等于值3时执行的代码 break; // 可以有更多的 case 分支 default: // 当表达式的值与所有的 case 值都不匹配时执行的代码 break; }
-
anouther switch
//此类形式不需要break
switch (表达式) {
case 值1 -> expression1;
case 值2 -> {
expression2;
expression3;
}
case 值3 -> expression4;
default -> expression0;
}
循环
- for
- for each
- while
要确保循环条件最终能够为 false,以避免进入无限循环的情况。 - do-while
要确保循环条件最终能够为 false,以避免进入无限循环的情况。5.数组
概述和静态初始化
(https://imgse.com/i/pPzQGHH)
地址值和元素访问
https://imgse.com/i/pPzQGHH []
遍历
https://imgse.com/i/pPzQ3uD
动态初始化
https://imgse.com/i/pPzQljO6.方法
6.1 什么是方法
打印 sout
6.2 方法的格式
https://imgse.com/i/pPzQn41
调用主方法 psvm
https://imgse.com/i/pPzQeE9
https://imgse.com/i/pPzQicT
带参数 https://imgse.com/i/pPzMNlT
7.继承
- java中允许“多层”继承,但不允许“多重”继承(多继承)
修饰符
- public
类公开可见
(成员)数据、方法公开可见
一个Java文件中,只能有一个public类,遵循封装原则,public不应该修饰数据成员
protected
对于其子类,或者同一个包中的类可见 - protected成员,在其他包中只能通过继承的方式来使用
缺省 default
整个类的访问权限是本地
对于同一个包中的类,可见
缺省类,其成员的最高访问权限为缺省,尽管可以用public,protected修饰, - private
私有,仅对本类或者其外部类公开 - final
禁止变量被赋值(实现只读效果)
禁止方法被覆写
禁止类被继承重写方法/方法覆盖
1.子类中方法名、参数列表与父类中的方法名、参数列表一样时发生重写
2.返回值类型必须一致(新版本:返回值类型必须小于或者等于父类方法的返回值类型,可以类型转换 )
3.子类方法访问权限>=被覆盖的父类方法
4.子类不能重写父类中用final修饰的方法
5.子类不能重写父类的构造方法
6.子类无法继承父类的构造函数
方法重载(overloading):
参数个数、类型或顺序不同,方法名相同(返回值类型可以不同)
java中方法的重写(overriding)和重载(overloading)是多态性的不同表现
7.父类被重写后,子类使用super调用的是父类的方法(被重写前的),其他情况下,直接调用被重写的方法,调用的就是子类中的方法。
8.java不支持super.super的用法
9.关键字final定义的方法,可以在同一个类中有重载(overloading)方法。(被继承后不能重写)
10.子类和父类的方法必须都是实例方法才会实现重写,若父类是静态方法,子类是实例方法或者相反都会报错,若父类和子类都是静态方法,那么子类会隐藏父类的静态方法,而不是覆盖