2) 表达式1用于初始化,一般书写变量初始化的代码,它在for语句中执行且只执行一次。
表达式2是循环条件,要求必须为布尔类型,如果该条件为空,则默认为true,即条件成立; 表达式3为迭代语句,是指循环变量变化的语句,一般书写i++、i--这样的结构。该语句可以为空。 7. while语句
1) 语法格式:
while(循环条件){ 循环体; }
2) 小括号内的条件循环条件返回的结果为布尔型
3) While中一定要包含循环条件,循环语句,调整语句 8. do-while语句
1) 语法格式: do{
循环体;
}while(循环条件);
2) do-while语句是 “先循环再判断”的流程控制结构 9. break语句
1) 完全跳出它所在或所标记的循环 2) 普通break语句的使用
(跳出for (int j = 0; j < 10; j++) {···}循环,继续for (int i = 0; i < 10; i++) {···}循环) public class Example4_13 {
public static void main(String[] args) { for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { System.out.print(j+\ if (j == 5) { break; } } System.out.print(\ } } }
3) 带标签的break语句的使用
(跳出label1标记的for (int i = 0; i < 10; i++){···}循环) public class Example4_14 {
public static void main(String[] args) { label1: for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { System.out.print(j+\ if (j == 5) { break label1;
31
} }
}
}
}
10. continue语句
1) 只跳出本次循环,但还要继续执行下一次循环 2) continue语句的简单使用
public class Example4_15 {
public static void main(String[] args) { int i = 0; while (i < 5) { i++; if (i == 3) {
}
}
continue;/ /只跳出本次,继续下一次i=4的循环;
}
System.out.println(i);
}
3) 带标签的continue语句
public class Example4_16 {
public static void main(String[] args) { label1: for (int i = 0; i < 10; i++) { System.out.print(\ for (int j = 0; j < 10; j++) { System.out.print(j + \ if (j == 5) {
} }
}
}
}
continue label1;//跳出label1:后的本次循环,开始下一次循环
第三章、 类和对象
简答、选择、编程
1. 对象和类的关系
先把各种不同种类或功能的对象进行分类并且建立各自的模板(类),然后在应用编程中,根据具体的需求再从各模板中创建实例对象。
32
2. 面向对象的特征
1) 继承:在已有类的基础上,扩充或改写其某些属性及方法,生成新的类,称为原有类的子类。 2) 封装:数据及基于其上的操作被封装在对象的内部,对外通过一被授权的接口与程序其他部
分交互。
3) 多态性:用相同的名字定义、调用不同的方法:子类对父类方法的覆盖、对本类中同名方法
的重载。 3. 类的结构
1) 定义的语法: [修饰符] class 类名 {
属性定义(声明) 方法定义(声明) }
2) 修饰符
public:表明此类为公有类 abstract:指明此类为抽象类 final:指明此类为终结类 4. 属性
1) 属性声明的语法:
[修饰符] 类型 属性名[ = 初值] ; 2) 属性和局部变量的区别:
属性可以有也可以没有修饰符,可以赋初始值也可以不赋初始值,不赋初始值系统会生成默认值。
局部变量不可以加修饰符,必须有初始值。 5. 方法
1) 方法声明的语法:
[修饰符] 返回值类型 方法名(参数列表){ 语句(组); return语句; }
2) 返回值类型是方法要返回的值的数据类型,使用关键字return返回一个值。 3) 若方法不返回值,则返回值类型为void。
4) 除了构造方法,所有的方法都要求有返回值类型。
5) 方法可以有一个参数列表,按方法的规范称为形式参数。当方法被调用时,形式参数用变量
或数据替换,这些变量或数据称为实际参数。 6. 构造方法
1) 用于对象的初始化,只能创建对象时调用 2) 构造方法的结构:
[修饰符] 类名(参数列表) { //方法体 }
33
3) 例如:
不带参的构造方法:
public Employee(){ name=\小明\ age=32; salary=2000; }
代参的构造方法:
public Employee(String n,int a,double s){ name=n; age=a; salary=s; }
4) 构造方法和普通方法的区别:
作用不同:构造方法是为了创建一个类的实例,方法的作用是为了执行JAVA代码 修饰符不同:
命名不同:构造方法名与类名一致
返回值不同:构造方法没有返回值类型
如果没有定义构造方法,系统会生成一个默认的无参的构造方法 构造方法只能用new在创建对象时调用,不能通过对象名调用 7. 对象
1) 声明对象的语法 类名 对象名; 2) 创建对象的语法
对象名 = new构造方法名(参数列表); 3) 声明并创建对象的语法
类名 对象名 = new 构造方法名(参数列表); 4) 调用对象属性和方法的语法: 对象名.属性名;
对象名.方法名(实际参数表)
注:如果方法返回一个值,对方法的调用通常就当做处理一个值;如果方法返回void,对方法的调用必定是一条语句。调用时实参必须在类型、数量上与形参完全匹配。 8. 重载
1) 方法重载是指,两个方法具有相同名称和不同的参数形式。被重载的方法必须具有不同的参
数形式。不能基于不同的修饰符或返回值类型重载方法。
2) 方法名与参数形式合称方法头标志。调用方法时,Java运行系统能够根据方法头标志决定调
用哪个方法。
3) 参数列表不同包括:参数数目不同,参数出现顺序不同,参数的类型不同.
4) 注意:方法重载时返回值类型可以不同,所以不能根据返回值类型不同来判断方法是否发生重
载,只能根据参数列表来区分 9. 简单数据类型和对象类型的区别
1) 每个变量名代表一个存储值的内存地址。
34
2) 对简单类型变量来说,对应的内存存放简单类型的值。
3) 对对象类型变量来说,存放的是指向对象在内存中存储位置的引用。一个对象类型的变量被
称为引用变量。 10. 简单数据类型和对象类型的复制
1) 将一个变量赋值给另一个变量时,另一个变量也有了相同的值。 2) 对于简单类型变量,一个变量的真实值赋给另一个变量。
3) 对于对象类型变量,它仅仅是将一个对象变量的引用值赋给另一个对象变量。 11. 给方法传递对象参数
1) 值传递:方法调用时,实际参数把它的值传递给对应的形式参数,方法执行中形式参数值的
改变不影响实际参数的值。 2) 引用传递:也称为传地址。方法调用时,实际参数的引用被传递给方法中相对应的形式参数,
在方法执行中,对形式参数的操作实际上就是对实际参数的操作,方法执行中形式参数值的改变将会影响实际参数的值。
3) 参数的作用:方法间的信息传递、给使用者控制方法执行的机会 12. 变量的作用域
属性的作用域是整个类,由构造函数给属性赋值
局部变量的作用域从该变量的声明开始到包含该变量?块结束为止,形式参数实际上是一个局部变量,一个方法中形式参数的作用域覆盖整个方法。实参给传值。 13. this关键字
1) this代表类的当前对象:利用“this.”可以调用当前对象的成员 2) this可以实现构造方法的调用
a) 利用this()可以调用构造方法。 b) 必须写在构造方法的第一条。 c) 例如:
public class Platypus {
String name; //被引用的属性
Platypus(String name) //被引用的构造方法{ this.name=name; //引用属性 }
Platypus(){
this(\ //引用构造方法 }
public static void main(String args[]) { Platypus p1 = new Platypus(\ Platypus p2 = new Platypus(); } } 14. static关键字
1) 类属性(静态属性)
a) 用static修饰的属性,称为类属性(不是类的属性)
35