软件园学生在线

  • {{ item.name }}
  • 2023试用期

登录与注册

后端零 张厚德

  • zed
  • 2023-10-15
  • 0

JAVA基础

基本语法

1. 注释

(1)this is a program // 单行注释,仅用在单行

(2)`this is a program /*多行注释

可以隔行*/`

(3)`this is a program /**这类注释可以生成到帮助文档中

*/`

2.标识符

1.标识符

定义:标识符由数字,美元符号,下划线和UNicode字符集组合构成;

注意:标识符第一个字符不能为数字,标识符间没有空格,标识符不能为关键字和保留字(JAVA中区分大小写,也能用),标识符命名最好符合直觉。

关键字和保留字

关键字是JAVA中有特殊含义的字符串,而保留字是目前没有特殊含义但日后可能加入关键字的字符串。

2.命名规范

​ 关于JAVA的命名方式有很多,几乎每个企业都有自己的命名标准,最常见的诸如驼峰命名法和阿里命名法,但并不强求一定要用一种命名法,随机应变即可。

​ 驼峰命名法:1.类名,接口名:首字母大写,后面每个单词首字母也大写。

​ 2.变量名,方法名:首字母小写,后面每个单词首字母大写。

​ 3.常量名:全部大写,单词之间用下划线连接。

3.变量

变量指在程序的执行过程中有可能发生改变的量(ps:说人话就是相当于函数中的自变量,在我们声明后才可使用)。

数据类型 变量名 = 数据值;

变量分为三种:局部变量,成员变量和静态变量。

最显著的区别是局部变量只在方法体中生效,方法结束后自动销毁,不会影响到整个函数;而静态变量始终是由所有类共享的,它始终生效,不必初始化.;成员变量则是最常见的变量,它参与到我们声明该变量的函数中。

​ 变量必须先声明后使用,且只能声明一次

数据类型

数据类型分为基本数据类型和引用数据类型。

基本数据类型分为八种,此处略.

引用数据类型分为数组,类和接口。

3.运算符

运算符分为算数运算符,关系运算符,逻辑运算符和赋值运算符。

算数运算符中需要注意的是

·%是取余的意思

·/是除法

·B++与++B是不同的;B++是先输出再加,而++B是先加再输出。

关系运算符则用作检查操作数间的关系

==用于检查是否相等

!=用于检查是否不相等

">"用于检查是否大于,小于和大于等于,小于等于同理

逻辑运算符用于检查逻辑的真假

&&当且仅当两个都为真时才为真

||任何一个条件为真时都为真

!是逻辑非运算符,用于反转逻辑状态

赋值运算符顾名思义,主要用作java语言中给变量赋值的作用,其中多种不同运算符此处略

​ 拓展:lambda表达式

​ Lambda是JDK8中的一个语法糖,它可以对某些匿名内部类的写法进行简化,是函数式编程思想的一个重要体现。让我们不用关注是什么对象,而是更关注我们对数据进行了什么操作。

​ Lambda的核心原则是可推导可省略 它的基本格式为(参数列表)-\>{代码}

​ 举个例子,当我们在创建线程并启动时可以使用匿名内部类的写法:

new Thread(new Runnable(){

​ @Override

​ publiic void run(){

​ System.out.println("略");

​ }

}).start();

​ 我们可以使用Lambda的格式进行修改,修改后如下:

new Thread(()->{

​ System.out.println(“略”);

}).start();

4.控制语句

选择

·If

if(condition){

}//当条件为真时执行的代码块

如果条件为真,则执行代码,否则跳过

if(condition){

//当条件为真时执行

}else{

//当条件为假时执行

}

如果条件为真执行第一个代码块否则执行else代码块

if(condition1){

//当条件1为真时执行的代码块

}else if(condition2){

//当条件2为真是执行的代码块

}else if(condition3){

//当条件3为真是执行的代码块

}

根据顺序依次判断真假并执行代码。(ps:该代码只会执行第一个满足的代码块,不再进行后续)

·switch

switch{

case A:

//当表达式值等于A是执行的代码

break;

case B:

//当表达式值等于B时执行的代码

break;

default;

//当表达式与所有case都不匹配时执行的代码

break;

}

后续同理,可以有更多种case(情况)

·another switch

another switch 用法与switch类似,但是不需要break,且一个case中可包含多个expression。

*ps:switch语句不能用于判断范围或布尔表达式,每个case中的值必须是常量或字面量,不能是变量或表达式。

循环

·for

for(initialization;condition;update){

//循环体代码

}

initialization是循环的初始条件,condition是循环的条件,只有当条件都为ture时循环才会执行,而update是循环的更新操作,在每次循环迭代后执行。

·for-each

for(elementDataType elementVariable:collection){

//循环体代码

}

elementDataType是集合元素的数据类型,elementVariable是每次循环是用来表示当前元素的变量名,collection是要遍历的数组或集合。

·while

while(condition){

}

condition是一个布尔表达式用于判断循环是否继续执行,当condition为ture时才执行,当condition为false时循环终止。

ps:使用while语句时一定确保循环条件最终为false

·do-while

do{

}while(condition)

5.方法

方法分为静态方法和非静态方法

1.静态方法:可通过类名称来直接调用

2.非静态方法:调用必须先有实例,然后再通过实例来调用

3.静态方法只能引用静态变量或局部变量

6.类和对象

​ JAVA是一种面向对象编程的语言,这意味着学会面向对象编程是学习JAVA过程中最重要的部分。

面向对象编程,简单来说就是先创建一些我们需要的对象,然后通过一些我们创建的通用的方法来处理这些对象的数据。

创建我们需要的对象并存入数据的过程我们称之为封装。

那么对象是什么呢?对象可以是我们希望处理的数据,例如处理学生成绩时每个学生的成绩都可以称为对象;

而类则是我们用于创建对象的模型,它包含了数据成员和方法,它也一定程度上定义了对象,定义了对象的属性和方法。

7.数组

数组是我们常用对象的一种,它的本质是一个容器,用来存储一批同种类型的数据

(1)定义数组

​ 数组有属性,最主要也最常用的是length,但是对于length需要注意的是数组创建完成后它就不可变了。

​ 定义多维数组时,第一维数组必须初始化,其他的不必初始化,但是使用时要对其他数组的大小初始化才可以赋值。

​ 静态初始化数组定义格式:

完整格式

数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3.....};

int[] ages = new int []{12,24,36}

double[] scores = new double[]{89.9,99.5,59.5,88.0};

简化格式

数据类型[] 数组名 = {元素1,元素2,元素3,......};

int[] ages = {12,24,36};

多维数组格式

int[][] c = new int [2][3];

int[][] c = {{1,2,3},{2,3,4}}

ps:"数据类型[] 数组名"也可以写成“数据类型 数组名[]"。

​ 什么类型的数只能存放什么类型的数据。

(2)数组的访问

数组的访问格式:数组名[索引]

System.out.println(a(0));

修改数组中的数据格式:数组名[索引] = 新内容;

访问数组的元素个数格式:

System.out.println(a.length);

ps:获取数组的最大索引格式:System.out.println(a.length - 1);但并不绝对,索引数为0的不适用.

(3)数组的遍历

数组的遍历可以使用for循环

数组的遍历格式:for(数据类型 i = 0;i \< 最大索引;i++){

​ System.out.println(数组名[i]);

}

(4)可变长度参数表

可变长度参数表是使用某种特殊语法的形参表,使所定义的方法能接收任意个数的参数,并将参数自动存入数组以便在方法中进行处理。

它的参数可以是任何类型。

可变长度参数表本身可变性质的实现从其尾部的“...”中来,注意“...”必须写在尾部,否则没有可变的效果。

其格式如下

public double average(int ... list)

{

double result = 0.0;

if (list.length != 0)

{

int sun = 0;

for (int num : list)

sun += num;

result = (double)sum / list.length;

}

return result

}

但需要注意的是,一个方法不能接受两组可变参数,并且可变参数必须在参数表的最后。

8.继承

继承是组织和创建类的基本技术,功能强大,决定着软件的设计方式,增强已设计类在软件开发中的实用性。

继承的核心就是子类和父类间的关系,父类是被继承类,它的原始类的变量和方法被子类自动包含,而子类则是继承类,它内部声明的变量和方法不能被父类使用,这就是继承的单向性。

同样的:一个子类不能有多个父类,这就是继承的多层继承性。

修饰符

public:主要意义是公开可见,其公开了类,数据以及方法,但需要注意的是,一个Java文件中只能有一个public类。

protected:主要意义是部分可见,仅有其子类或同一个包中的类可见,其中的成员只能通过继承的方式使用。

defalut:主要意义是本地可见,只有本地有该包的访问权限,和protected一样,它只有同一个包中的类可见。

private:主要意义是私有,即限制其公开性,仅对本类或者其外部类公开。

final:主要意义是禁止,它同时禁止了变量被赋值,方法被覆写和类被继承

zed
zed
© 2025 软件园学生在线
Theme by Wing