标识符
定义:包名、类名、参数名、变量名、方法名等被称为标识符
命名规范:标识符由字母数字下划线以及$符号组成,数字不能开头,不能是java关键字和保留字(尽量避免)。
运算符
算术运算符
+ 加法 - 相加运算符两侧的值
- 减法 - 左操作数减去右操作数
* 乘法 - 相乘操作符两侧的值
/ 除法 - 左操作数除以右操作数
% 取余 - 左操作数除以右操作数的余数
++ 自增: 操作数的值增加1
-- 自减: 操作数的值减少1
关系运算符
== 等于
!= 不等于
> 左侧数字大于右侧数字返回真
< 右侧数字大于左侧数字返回真
>= 左侧数字大于等于右侧数字返回真
<= 右侧数字大于等于左侧数字返回真
逻辑运算符
&& 与 例:a && b = false
|| 或 例:a || b = true
!非 例:!(a && b) = true
短路特性
要使(表达式1)&&(表达式2)运算结果为真则要求:表达式1,表达式2都为真,如果表达式1为假,则不计算表达式2了,因为此时已经确定(表达式1)&&(表达式2)运算结果不可能为真,这就是&&运算的短路特性。
要使(表达式1)||(表达式2)运算结果为假则要求:表达式1,表达式2都为假,如果表达式1为真,则不计算表达式2了,因为此时已经确定(表达式1)||(表达式2)运算结果不可能为假,这就是||运算的短路特性。
流程控制
Scanner对象
通过Scanner类的next()与nextLine()方法获取输入的字符串,在读入前我们一般需要使用hasNest()与hasNestLine()判断是否还有输入的数据。
基本语法:Scanner s = new Scanner(System.in);
next()
一定要读取到有效字符后才可以结束输入
对输入有效字符之前遇到的空白,next()方法会自动将其去掉
只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符
next()不能得到带有空格的字符串
nextLine()
以Enter作为结束符,也就是说,nextLine()方法返回的是输入回车之前的所有字符
可以获得 空白
循环结构
顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。
for循环
for(初始化语句;判断语句;控制条件语句){
循环体语句;
}
while循环
基本格式:
while(判断条件语句){
循环体语句;
}
do…while循环
do…while循环
基本格式:
do{
循环体语句
控制条件语句
}while(判断条件)
分支结构
根据条件,选择性地执行某段代码。
if
class Demo1 { public static void main(String[] args) { if () { } //后续代码 } }
if-else分支结构
class Demo2 {
public static void main(String[] args) {
if () {
//True语句体
}else {
//False语句体
}
//后续代码
}
}
if-else if 分支结构
class Demo3 {
public static void main (String[] args) {
if (/* 布尔条件1 */) {
// 处理方式1
} else if (/* 布尔条件2*/) {
// 处理方式2
} else if (/* 布尔条件3 */) {
// 处理方式3
} else {
// 无匹配项处理方式
}
//后续代码
}
}
switch-case结构
class Demo4 {
public static void main (String[] args) {
switch (/* 变量|表达式 */) {
case 值1:
// 处理方式1;
break;
case 值2:
// 处理方式2;
break;
default:
// 最终处理方式
break;
}
}
}
break
break在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,不执行循环中剩余的语句。(break语句也可以在switch语句中使用)
continue
continue语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。
数组
介绍:Java 语言中提供的数组是用来存储固定大小的同类型元素。
作用:在程序中常常需要使用数组,利用循环可以对数组中的数据进行批量操作,大大提高了效率,十分方便。
数组的声明方式
1.数据类型 [] 数组名称 eg:int [] a;
2数据类型 数组名称 [] eg:int a [];
数组的初始化
动态初始化: 数据类型 [] 数组名称 = new 数据类型 [长度];
静态初始化:在定义数组的同时设置元素的值。
方法
Java方法是语句的集合,它们在一起执行一个功能
方法的优点
- 1. 使程序变得更简短而清晰。
- 2. 有利于程序维护。
- 3. 可以提高程序开发的效率。
- 4. 提高了代码的重用性。
方法的命名规则
- 1.方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头写,不使用连接符。例如:addPerson。
- 2.下划线可能出现在 JUnit 测试方法名称中用以分隔名称的逻辑组件。一个典型的模式是:test<MethodUnderTest>_<state>,例如 testPop_emptyStack。
方法的定义
修饰符 返回值类型 方法名(参数类型 参数名){ ... 方法体 ... return 返回值; }
- 修饰符:修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。
- 返回值类型 :方法可能会返回值。returnValueType 是方法返回值的数据类型。有些方法执行所需的操作,但没有返回值。在这种情况下,returnValueType 是关键字void。
- 方法名:是方法的实际名称。方法名和参数表共同构成方法签名。
- 参数类型:参数像是一个占位符。当方法被调用时,传递值给参数。这个值被称为实参或变量。参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数。
- 方法体:方法体包含具体的语句,定义该方法的功能。
方法调用
当方法返回一个值的时候,方法调用通常被当做一个值
如果方法返回值是void,方法调用一定是一条语句
类与对象
类和对象概念
类就是一类对象的统称。它包含该类对象的属性和操作其成员的方法。分别叫做成员属性和成员方法。具体的某一个物体或者具体的某一个事物就是一个对象。对象就是这一类具体化的一个实例。用一个类创建一个对象叫做类的实例化。
类的实例化
类就是一个模板,就像做月饼时所用的模子,而所做出来的各种月饼就是所实例化出来的对象。1.类只是一个模型,只是限制类有哪些成员,定义一个类并没有分配实际的内存空间来存储它。2…一个类可以实例化出多个对象,实例化出的对象占用实际的物理空间,存储类成员变。
类包含成员属性和成员方法。1.类的成员可以包含字段、方法、代码块、内部类和接口等。对于一个对象的字段如果没有设置初始值,那么会被设置一个默认值。对于各种数字类型默认值为0,对于布尔类型默认值为false,对于引用类型默认值为null。2.成员方法的调用是通过对象的引用进行调用。
new关键字用于创建一个对象的实例。使用.来访问对象中的属性和方法。
static关键字
被static关键字所修饰的静态成员或方法在调用时需要用类名来调用,因为他属于类而不属于对象。
封装性
private/ public 这两个关键字表示 “访问权限控制” 。
public 修饰的成员变量或者成员方法, 可以直接被类的调用者使用.
private 修饰的成员变量或者成员方法, 不能被类的调用者使用.
构造方法
构造方法是一种特殊方法, 使用关键字new实例化新对象时会被自动调用, 用于完成初始化操作。
语法规则
1.方法名称必须与类名称相同
2.构造方法没有返回值类型声明
3.每一个类中一定至少存在一个构造方法
this关键字
功能概述
- this调用本类中的属性,也就是类中的成员变量;
- this调用本类中的其他方法;
- this调用本类中的其他构造方法,调用时要放在构造方法的首行。
调用成员变量
public class Student{
String name;
private void SetName(String name){ this.name = name;
} }
调用成员方法
package Test;
public class ThisTest {
String name;
private void setName(String name) {
this.name = name;
System.out.println("setName: " + this.name);
}
private void thisTest(String name) {
this.setName(name);
System.out.println("thisTest: " + this.name);
}
public static void main(String[] args) {
ThisTest tt = new ThisTest();
tt.setName("Yida");
tt.thisTest("Jenny");
}
}
调用构造方法
构造方法是一个类的对象在通过new关键字创建时自动调用的,在程序中不能向调用其他方法一样通过方法名(也就是类名)来调用。但如果一个类有多个构造方法,可以在一个构造方法中通过this(paras…)来调用其他的构造方法。
返回对象的值
this关键字除了可以引用变量或者成员方法之外,还有一个重大的作用就是返回类的引用。如在代码中,可以使用return this,来返回某个类的引用。此时这个this关键字就代表类的名称。如代码在上面student类中,那么代码代表的含义就是return student。可见,这个this关键字除了可以引用变量或者成员方法之外,还可以作为类的返回值,这才是this关键字最引人注意的地方。