Java基础语法の笔记
一、类的概念与定义
- 类的概念
Java是一个「面向对象」的编程语言,所谓对象,便是“类”的一个“实例”。
在计算机里,程序员便是赛博上帝,拥有造物的能力。在java中,我们通过定义「类」来创造一个物种。
- 类的定义
我们通过如下代码定义类。
class 类名 {
}
创造一个物种,需要给它一个合适的名称。定义类也是如此。
一个合适的类名,通常符合以下要求:
- 以字母开头
- 首字母大写
- 驼峰式
- 名字符合该类的特征
- 不与关键字或作用域内别的类名重复
接下来,我们便可以在这个类里定义属性与方法,以规定该类的特征与行为。
- 类的调用
在使用类时,需要将类实例化。一个实例是一个类中的个体,可以理解为一个人与人类的关系——人类是一个类,而人是人类中的个体。
我们通过new语句来创造新的实例。
创建新实例的基本语句: 类名 实例名 = new 类名(参数)
接下来,我们就可以使用这个实例来操作这个类里的属性和方法了。
调用属性的基本语句: 实例名.属性名
调用方法的基本语句: 实例名.方法名(参数)
- 类的继承
可以将继承关系理解为 界门纲目科属种 的关系。门继承了界,便称界为父类,门为子类。
在类的继承中,子类会继承父类的属性与方法。同时我们可以在子类中修改父类属性方法或者扩充自身的属性方法。通过继承,我们可以避免代码的重复,以实现简化。
继承类的基本语句:
class 子类名 extends 父类名{
}
二、变量
变量来源于数学,是计算机语言中能储存计算结果或能表示值的抽象概念。
- 变量的定义
定义一个变量需要事先声明它的数据类型,并给该变量起一个合适的名称。
Java中,数据类型有以下几种:
- char(字符)
- byte(8位)
- short(16位)
- int(整型:32位,由-2^31到2^31-1)
- long(64位)
- float(单精度浮点数)
- double(双精度浮点数)
- boolean(布尔型,只包含true和false)
合适变量名和类名有相似的规则,区别在于变量名通常无需大写首字母。
定义一个变量的基本格式为 数据类型 变量名
,例如:int deskmateAge
通过这个语句,我们定义了一个名为deskmateAge的字符串变量。显然,这个变量用于描述同桌的年龄。
- 变量数据类型的转换
一些变量的数据类型可以由底向高位转换。例如:
char a = 'A';
int b = a;
System.out.println(b);
运行结果为:
65
通过上述过程,我们将字符 A 转换成了 A 的ASCII码 65 。
由低位到高位的顺序为:byte—>short,char—> int —> long—> float —> double
值得注意的是,当强制将数据类型由高位转向低位时,便有可能导致溢出或精度损失。例如:
double a = -1.1;
int b = (int)a;
System.out.println(b);
运行结果为:
-1
三、函数
函数如同一台机器,启动它并向它输入材料(输入值),它便能输出一个产品(输出值)。
例如:
public f(int x){
int y = x * x;
return y;
}
其中,x是一个输入值,y是一个输出值,f则是该函数的名称。
起一个合适的函数名与起变量名的规则类似。
四、输入输出语句
注意:使用Scanner前要先用import java.util.Scanner
导入
Scanner input = new Scanner(System.in); //Scanner是一个类,要先用其创建一个实例
int a = input.nextInt(); //获取输入的整型类数据
String b = input.next(); //获取输入的数据,遇见空格停止读取输入
String c = input.nextLine(); //获取整行的字符串
System.out.println(b + c + a); //输出语句,其中整型变量a会被自动转换为字符串
五、运算符
运算符表示一定的运算过程。
- 算数运算符:
+ - * / % ++ --
。算术运算符用于数学运算。
其中 +
除了用于数学相加外,还可以用于拼接字符串; %
表示取余; ++
和 --
分别表示自增和自减。
++
或 --
可以写在变量之前或者之后,区别在于作为前缀的运算优先级高于整个表达式,作为后缀的优先级则低于整个
表达式,即先增减再执行语句和先执行语句再增减的区别。
通常,我们的表达式和数学的表达式相似。例如:
int a = 1 ;
int b = 2;
int sum = a + b;
上述程序运行后,sum的值便为3。
但有时为了方便,我们还可以用赋值的方式运算。例如:
int a = 1;
int b = 2;
b -= a;
上述程序运行后,b的值便为1,表达式的含义为: b = b - a
。
- 关系运算符:
== != =
。关系运算符用于表达式真假运算。
其中 !=
的意思为“不等于”; =
分别表示“小于或等于”和“大于或等于”。
关系运算符的运算结果只有 true
或者 false
。
- 逻辑运算符:
&& || !
。逻辑运算符用于逻辑运算。
其中 &&
表示“与”; ||
表示“或”; !
表示“非”。
与关系运算符一样,逻辑运算符的结果也只有 true
或者 false
。
六、分支结构
Java中有两种主要的分支结构: 分别是if语句和switch case语句。其中switch case 语句判断一个变量与一系列值中某
个值是否相等,每个值称为一个分支。
- if 语句结构:
if (/*布尔表达式1*/){ //布尔表达式1值为true时将执行的语句 }else if (/*布尔表达式2*/){ //布尔表达式1值为false且布尔表达式2值为true时将执行的语句 }//可以写任意数量的else if else{ //上述布尔表达式值都为false时将执行的语句 }
- switch 语句结构:
switch(/*值*/){ case value1 : //输入的值 = value1 时执行的语句 break; //可选 case value2 : //输入的值 = value2 时执行的语句 break; //可选 //可以写任意数量的case语句 default : //可选 //没有一个value与值相等时执行的语句 }
注意:若不写break,则在成功执行完一个case语句后,程序将继续执行接下来的case语句,直到遇见break。
七、循环结构
Java中有三种主要的循环结构: while循环、do...while、for循环循环。其中while循环若条件不符合则不会执行,
而do...while则至少执行一次。
- while循环:
while(/*布尔表达式*/) { //循环内容,布尔表达式成立的条件下重复执行 }
- do...while循环:
do{ //循环内容,布尔表达式成立的条件下重复执行,若一开始就不成立,则执行一次后跳出循环 }while(/*布尔表达式*/)
- for循环:
for(/*初始化值; 布尔表达式; 初始值更新方式*/) { //代码语句 }
例如:
for(int i = 1 ; i <= 10 ; i += 2){ System.out.println(i); }
输出结果为:
1 3 5 7 9