面向对象程序设计(Java第四讲)
第四讲 java类与对象

方法重载
访问权限
类和对象
对象表示现实世界中某个具体的事物。 抽象是从特定的实例中抽取共同的性质以形成一般化
概念的过程。 对象具有两方面的含义:
在现实世界中:
是客观世界中的一个实体 是一个可标识的存储区域
在计算机世界中:
类
类是用来描述一组具有共同状态和行为的对象的原型,
//App4_10.java Public class App4_10{ Pulbic static void main(String[] args){ Circle circle=[代码1] //创建circle对象 [代码2] Circular circular= /*创建circular对象,并将circle引用 传递给构造方法的参数c。*/ System.out.print(“圆锥的体积:%5.5f\n”,circular.getVolme); Circular.bottom.radius =100; System.out.printf(“圆锥的面积: %5.5f\n”,circular.getVolme); } } 执行[代码1]: Circle circle=new Circle(); 执行[代码]: Circular circular=new Circular(circle,20);
对象的组合
一个类的成员变量可以是某个类声明的变量,即可以是对象。当A类把B类的对象作为自已 的成员时,称A类的对象组合了B类的对象。比如:公司组合了员工,收音机组合了电池 //Circle.java Public class Circle{ Double radius; Circle(double r){ Radius=r; } Double getArea(){ return 3.14*radius*radius; } }
java程序设计 第四章 内容提纲汇总

注意:①创建对象的意思是在内存中按类的格式开辟
一个空间。这个空间既有属性空间,又有方法空间。 ②同类的不同对象占用不同的内存空间 创建变量与创建对象示意图
第4章 面向对象编程
2、对象初始化的说明 (1)系统如何对变量初始化 一个变量若在声明后没有赋值而直接使用该变量, 则会出错
同样,用new创建一个对象时,系统会为对象中 的变量进行初始化。系统不但会为对象中的变量分配 内存,同时还为它们设置相应的初值 byte、short、int、long类型变量设初值为0 Float类型变量设初值为0.0f Double类型变量设初值为0.0 Char类型变量设初值为‘\u0000’ Boolean为false; 引用类型初值为null
第4章 面向对象编程
B、修饰方法—公共方法: 公共方法是类的对外接口,它允许其它类或程序 调用 C、修饰域—公共域(公共属性、公共变量):
用public修饰变量,会造成安全性和数据的封装
性下降
第4章 面向对象编程
2)、私有访问控制符:private 用private修饰的属性和方法只能被自身类访问 和修改。它不能被其它类(包括该类的子类)访问和修 改 说明: ①享有最高级别的保护,是类的私有成员 ②其它类若想获得和修改私有成员时,要通过 类的方法
◆封装是抽象的具体体现,它利用操作方法把数据 封装到类中;形成以数据为核心,以方法为外壳的类。
◆继承是一个类继承父类的所有非私有的属性和方 法,它可以提高代码的重用性。 ◆对象是类的实例化的结果,是类的具体化,利用 对象的引用可以使用类的属性和方法完成任务。
第4章 面向对象编程
§4.3 成员变量与封装
态,解决问题)
第4章 面向对象编程
面向对象的方法解决问题的基本过程 对象 实 例 ③ 化 类 实体
java面向对象 实验四 类和对象编程(面向对象特征)

学号姓名实验序号实验四实验名称类和对象编程—面向对象特征实验地点实验日期实验内容1.设计3个类,分别学生类Student,本科生类Undergaduate,研究生类Postgraduate,学生类包含一些基本属性,如姓名、所学课程、课程成绩等,具有一个空方法getGrade();本科生类Undergaduate与研究生类Postgraduate继承学生类Student,都覆盖了父类的getGrade()方法,用于通过分数计算成绩的等级,计算方法不同,研究生的标准要比本科生的标准高一些,如下表所示。
要求对属性进行适当封装,通过方法来访问。
表课程成绩等级本科生标准研究生标准80--100优秀90—100优秀70--80良好80—90良好60--70一般70—80一般50--60及格60—70及格50以下不及格60以下不及格编写测试类,在测试类里创建Undergaduate与Postgraduate对象,计算他们的成绩,并输出他们的个人信息。
实验过程及步骤根据实验要求编写程序如下:class Student {private String name;private String course;private int score;public String getName() {return name;}public void setName(String name) { = name;}public String getCourse() {return course;}public void setCourse(String course) {this.course = course;}public int getScore() {return score;}public void setScore(int score) { this.score = score;}public String getGrade() {return"";}}class Undergaduate extends Student { Undergaduate(String _name, String_course, int _score) {setName(_name);setCourse(_course);setScore(_score);实验过程及步骤}public String getGrade() {int grade = getScore();if (grade >= 80)return ("优秀");if (grade >= 70)return ("良好");if (grade >= 60)return ("一般");if (grade >= 50)return ("及格");return ("不及格");}}class Postgraduate extends Student { Postgraduate(String _name, String _course, int _score) {setName(_name);setCourse(_course);setScore(_score);}public String getGrade() {int grade = getScore();if (grade >= 90)return ("优秀");if (grade >= 80)return ("良好");if (grade >= 70)return ("一般");if (grade >= 60)return ("及格");return ("不及格");}}public class Test {public static void main(String[] args) {Undergaduate a1 = new Undergaduate("张三", "JAVA", 80);Undergaduate a2 = new实验过程及步骤Undergaduate("李四", "JAVA", 60);Postgraduate b1 = newPostgraduate("王五", "JAVA", 90);System.out.println(a1.getName() + "的" + a1.getCourse() + "成绩为"+ a1.getGrade());System.out.println(b1.getName() + "的" + a1.getCourse() + "成绩为"+ a1.getGrade());System.out.println(a2.getName() + "的" + a2.getCourse() + "成绩为"+ a2.getGrade());}}得到结果:实验结果及分析教师评阅。
第4讲 面向对象的程序设计

(3)私有成员 私有成员通过在成员声明中使用private修饰 符来定义.C#中的私有成员只有类中的成员 可以访问,在类的外部是禁止直接访问私有 成员的.这也是C#中成员声明的默认方式, 即若在成员声明时没有使用任何访问修饰符, 那么C#自动将它限定为私有成员. (4)内部成员 内部成员通过在成员声明中使用internal修饰 符来定义.该成员只能被程序集中的代码访 问,而程序集之外的代码无法访问.
(3)不能显式地调用析构函数. (4)析构函数的命名规则是在类名前加上一个"~"号. 如上例的Example1类的析构函数为: ~Example1() { }; (5)析构函数在对象销毁时自动调用. 【例7-3】 类的构造函数和析构函数的演示.(程序代 码详见例7-3)[执行结果]
using System; class Exam { static public int a;//静态成员 public int b;//实例成员 public Exam()//构造函数,没有参数,用来给成员变量赋初值0 { a=0; b=0; } public Exam(int m,int n)//构造函数,有参数,用来给成员变量赋特定的初值 { a=m; b=n; } ~Exam()//析构函数 {} } class A_7_3 { public static void Main() { Exam E1=new Exam();//产生类的实例E1,自动调用无参数的构造函数 Console.WriteLine("a={0},b={1}",Exam.a,E1.b); Exam E2=new Exam(10,20);//产生类的实例E2,自动调用有参数的构造函数 Console.WriteLine("a={0},b={1}",Exam.a,E2.b); } }
Java面向对象程序设计第4章_类与对象

值的级别不可以高于该参数的级别 。
例4-4
public class Rect { //负责创建矩形对象的类 double width,height,area; void setWidth(double width) { if(width>0){ this.width=width; }} void setHeight(double height) { if(height>0){ this.height=height; } } double getWidth(){ return width; } double getHeight(){ return height; } double getArea(){ area=width*height; return area; }}
1.对成员变量的操作只能放在方法中,方 法可以对成员变量和该方法体中声明的局部变 量进行操作。 2.需要注意的是:实例方法既能对类变量操 作也能对实例变量操作,而类方法只能对类变 量进行操作。 3.一个类中的方法可以互相调用,实例方法 可以调用该类中的其它方法;类中的类方法只 能调用该类的类方法,不能调用实例方法。
给类命名时,遵守下列编程风格(这不是语法要求 的,但应当遵守):
◆ 1.如果类名使用拉丁字母,那么名字的首字母使用大写字母, 如。 2.类名最好容易识别、见名知意。当类名由几个“单词”复 合而成时,每个单词的首字母使用大写。
第四讲结构化程序设计与面向对象程序设计

第四讲结构化程序设计与面向对象程序设计在当今的计算机编程领域,结构化程序设计和面向对象程序设计是两种非常重要的编程方法。
它们各自有着独特的特点和优势,适用于不同的应用场景。
接下来,让我们一起深入了解这两种编程设计方法。
结构化程序设计诞生于 20 世纪 60 年代,它的出现是为了解决当时程序设计中存在的混乱和难以维护的问题。
结构化程序设计强调程序的清晰结构和逻辑流程,通过顺序、选择和循环这三种基本控制结构来构建程序。
顺序结构是最基本的,程序按照语句的先后顺序依次执行。
比如,我们先定义变量,然后进行计算,最后输出结果,这就是一个简单的顺序结构。
选择结构则用于根据不同的条件来决定程序的执行路径。
常见的有ifelse 语句和 switch 语句。
假设我们要判断一个数是奇数还是偶数,就可以使用 ifelse 语句,如果这个数除以 2 的余数为 0,就是偶数,否则就是奇数。
循环结构则允许我们重复执行一段代码,直到满足特定的条件。
比如 for 循环和 while 循环,当我们需要计算 1 到 100 的和时,就可以使用循环结构来实现。
结构化程序设计的优点是显而易见的。
它使得程序的逻辑更加清晰,易于理解和调试。
而且,由于程序的结构比较规范,代码的可读性和可维护性都得到了很大的提高。
然而,随着软件规模的不断扩大和复杂性的增加,结构化程序设计也逐渐暴露出一些局限性。
当程序变得非常复杂时,单纯依靠结构化程序设计可能会导致代码的重复度较高,模块之间的耦合度较大,不利于代码的复用和扩展。
为了解决这些问题,面向对象程序设计应运而生。
面向对象程序设计将数据和对数据的操作封装在一起,形成一个个对象。
对象具有自己的属性和方法,可以与其他对象进行交互。
在面向对象程序设计中,最重要的概念包括类、对象、封装、继承和多态。
类是对象的模板,它定义了对象所具有的属性和方法。
比如,我们可以定义一个“汽车”类,这个类包含了汽车的品牌、颜色、速度等属性,以及加速、刹车等方法。
(2024年)《Java面向对象程序设计》教案

01
课程介绍与目标
2024/3/26
3
Java语言概述
2024/3/26
Java语言的历史与发展
01
介绍Java语言的起源、发展历程以及在不同领域的应用。
Java语言的特点与优势
02
阐述Java语言跨平台、面向对象、安全性等特点,以及其在软
件开发中的优势。
Java语言的核心技术
03
简要介绍Java语言的核心技术,如JVM、Java类库、Java API
接口是一种特殊的类,它只包含方法的声明,不包含方法的实现。
抽象类的定义
抽象类是一种特殊的类,它不能被实例化,只能被继承。抽象类中 可以包含抽象方法和非抽象方法。
接口与抽象类的区别
接口只能包含方法的声明,而抽象类可以包含方法的声明和实现; 接口可以被多继承,而抽象类只能被单继承。
16
内部类与匿名内部类
关键字
Java语言中预定义的、有特殊含义的单词,不能作为标识符使用 。
数据类型
Java中的数据类型分为基本数据类型和引用数据类型,基本数据 类型包括整型、浮点型、字符型和布尔型。
2024/3/26
9
运算符与表达式
运算符
用于进行各种运算的符号,如算术运算符、关系运算符、逻辑运算符等。
表达式
由运算符和操作数组成的算式,用于计算并返回结果。
提供了操作日历字段(如年、月、日、时、分、秒)的方 法,可以获取和设置日期时间。
两者比较
Date类主要用于表示日期时间,而Calendar类则提供了 更丰富的日期时间操作方法,如计算两个日期之间的差值 、设置时区等。
20
集合框架类库
Java集合框架主要包括接口(如 Collection、List、Set、Queue、 Deque等)和实现类(如ArrayList、 LinkedList、HashSet、TreeSet等) 。
第四讲 抽象、封装与类

Java Program Design &Object Oriented Methodology
第四讲 抽象、封装与类 主讲教师: 王海峰 临沂大学信息学院网络教研室
gadfly7@
1
回顾上讲 • • • • Java基本数据类型 变量、常量、表达式 各种运算,优先级 程序流程控制
调节亮度
……;} }
Copyright © 2006 , Wang Hai feng, All rights reserved
13
4.2 Java 的类
import java.awt.Graphics; /**
* This class is used to draw a box .
* * @author hf_wang */ class Box { double width,height,depth; double volume( ) { return width*height*depth;
private修饰符表示该成员变量只能被该类本身访问,任何其他类都不能访 问该成员变量。 不加任何访问权限限定的成员变量属于默认访问权限。默认访问权限表示 该成员变量只能被该类本身和同一个包的类访问(friendly)。 protected修饰符表示该成员变量除可以被该类本身和同一个包的类访问外, 还可以被它的子类(包括同一个包中的子类和不同包中的子类)访问。 public修饰符表示该成员变量可以被所有类访问
Copyright © 2006 , Wang Hai feng, All rights reserved 28
16
成员变量设计: • 确定变量的数据类型:
– 运动员类的心率?Int\ float; – 银行帐号的利率?Int\ float;
Java面向对象程序设计教案

Java面向对象程序设计教案一、课程简介1.1 课程背景Java是一种广泛应用于企业级开发、移动应用、Web开发等领域的面向对象编程语言。
通过学习Java面向对象程序设计,学生可以掌握Java基本语法、面向对象编程思想及常用API,为以后从事软件开发工作打下坚实基础。
1.2 课程目标(1)理解Java编程语言的基本语法;(2)掌握面向对象编程的核心概念,如封装、继承、多态;(3)熟悉常用Java类库及API;(4)能够独立编写简单的Java应用程序。
二、教学内容2.1 Java基本语法(1)变量、数据类型与运算符;(2)控制结构(条件语句、循环语句);(3)数组与字符串;(4)方法与对象。
2.2 面向对象编程思想(1)类与对象;(2)构造方法与this关键字;(3)封装与访问权限;(4)继承与多态。
2.3 常用Java类库及API(1)ng包(String类、Math类等);(2)java.util包(集合类、日期时间类等);(3)java.io包(文件操作类等);(4)Java网络编程。
三、教学方法3.1 授课方式采用讲授、案例分析、上机实践相结合的方式进行教学。
3.2 实践环节安排课后练习及实验课程,巩固所学知识,提高实际编程能力。
3.3 互动交流鼓励学生在课堂上提问、分享学习心得,教师及时解答学生疑问。
四、评价方式4.1 平时成绩(1)课后练习:30%;(2)实验课程:40%;(3)课堂表现:30%。
4.2 期末考试(1)理论知识:40%;(2)编程实践:60%。
五、教学计划5.1 课时安排共计64课时,其中理论授课48课时,实验课程16课时。
5.2 教学进度(1)第1-8周:Java基本语法;(2)第9-16周:面向对象编程思想;(3)第17-24周:常用Java类库及API;(4)第25-28周:综合实战及复习。
六、常用Java类库及API(续)6.1 图形用户界面(GUI)编程Swing组件库的使用事件处理机制布局管理器6.2 数据库连接与操作JDBC的概念与使用SQL语句的编写数据库连接池技术6.3 JavaFX编程JavaFX基础组件场景图(Scene Graph)媒体与动画六、教学方法6.1 授课方式通过实例讲解和动手实践,让学生掌握GUI编程和数据库操作的技巧。
面向对象程序设计-JAVA说课稿

介绍JDK的下载、安装及环境变量的配置,以及 常用开发工具的介绍与使用。
Java语言基本语法
标识符与关键字
讲解Java语言中标识符的 命名规则、关键字及其用 途。
数据类型
详细介绍Java中的基本数 据类型(整型、浮点型、 字符型、布尔型)及其使 用场景。
变量与常量
阐述Java中变量的声明、 初始化及作用域,以及常 量的定义和使用。
封装与隐藏
封装(Encapsulation)是指将对象 的属性和方法封装在类中,隐藏对象 的内部细节,只对外提供必要的接口。 封装可以提高程序的安全性和可维护 性。
VS
在Java中,使用访问修饰符来控制类、 属性、方法的访问权限,实现封装和 隐藏。Java中的访问修饰符包括 `private`、`protected`、`public`和 默认(无修饰符)。其中,`private` 修饰符表示只有类本身可以访问; `protected`修饰符表示类和子类可以 访问;`public`修饰符表示任何类都 可以访问;默认修饰符表示只有同一 个包中的类可以访问。
鼓励学生参加编程竞 赛、开源项目等课外 活动,拓宽视野和增 强实践能力
02
Java语言基础
Java语言概述
01 Java语言的历史与发展
介绍Java语言的起源、发展历程以及在不同领域 的应用。
02 Java语言的特点
第4章 Java面向对象程序设计

相关知识点:
1. 类定义 对一个用户自定义的类,要为类取一个名字,并指明类中 包含哪些变量和方法以及相应的类型、实现等,这称为类的 定义。类定义语句的一般形式为: [public][abstract][final] class 类名 [extends 父类名] [implements 接口名表] { 成员变量定义 // 类体 成员方法定义 } 说明: (1)其中class、extends和implements都是Java的关键字。 说明 : (2)在类声明的各部分中,关键字class和类名是必须的, 其它部分可根据需要选用; (3) public、abstract、final关键字顺序可以互换,但class, extends和implements顺序不能互换。
类声明中关键字及其含义
2.成员变量的定义 (1)成员变量的分类 类变量:描述类的静态特性,被该类所有的对象所 类变量 共享,即使没有创建类的对象,这些变量也存在。 无论创建多少个该类的对象,都共享一个副本;当 类变量的值发生改变,类的所有对象都将使用改变 后的值。 实例变量:与具体对象相关,创建一个对象的同时 实例变量 也创建类的实例变量,因此每一个对象均有自己的 实例变量副本和赋值。这些实例变量,记录了对象 的状态和特征值,使每个对象具有各种的特点,以 区分于不同的对象。
//主方法 主方法 public static void main(String[] args) { College wangym; wangym=new College("Wangym",false,33,168,56,"软件技术 软件技术"); 软件技术 wangym.getInfo();//调用父类的实例方法 调用父类的实例方法 wangym.getMajor();//调用子类的实例方法 调用子类的实例方法 } }
04_第四讲 Java语言中的面向对象特性

//静态方法
2、Java中的类、方法和变量
class CarDemo { class Car public static void main(String a []) { { int car_number; Car DemoCar=new Car(); DemoCar.set_number(3838); void set_number(int car_num) DemoCar.show_number(); { } car_number=car_num; }
A.data_a=3
B.data_a=5
3. Super
在子类中需要调用父类的同名方法或使用父类的同名 变量时,使用关键字super来指明当前调用的是父类的成员
变量或方法。
super.x;
super.add(5); super(); 见教材Chess.java示例
6.3 多态性
1. 编译时多态
表现为方法名相同,而参数表不同。 典型:System.out.println();它底参数有很多种。
• 用static修饰的变量、方法称为类变量、类方法 • • • • 类变量只有一个副本。所有的对象共享。 类方法只能使用类变量 类方法可以被类调用,也可以被对象调用 Emaple P63
属于类的变量和方法——static
static 在变量或方法之前,表明它们是属于类的,
称为类方法(静态方法)或类变量(静态变量)。 若无static修饰,则是实例方法和实例变量。
举例:public static int num ;
6.1.3 成员方法
[修饰符][static][final | abstract] [native] 返回类型 方法名(参数列表) throws 异常列表 ; 修饰符:public, protected, private表示访问控制。 static : 表示该方法是静态方法。可以有类直接调用。 final : 表示该方法不能被重载。 abstract : 表示该方法。 native : 表示该方法由其他程序语言完成。如C++
自考Java程序语言设计(一)第四章面向对象程序设计讲义

第四章面向对象程序设计目录第一节类和对象第二节定义方法第三节静态成员第四节包装类01 类和对象类的定义类的定义也称为类的声明。
类中含有两部分元素,分别是数据成员变量和成员方法。
类定义的一般格式如下。
修饰符 class 类名 [extends父类名]{修饰符类型成员变量1;修饰符类型成员变量2;……修饰符类型成员方法 1 (参数列表){方法体}……}其中,class是关键字,表明其后定义的是一个类。
含有class的这一行称为类头,后面大括号括住的部分称为类体。
class前的修饰符可以有多个,用来限定所定义的类的使用方式。
类名是用户为该类所起的名字,它必须是一个合法的标识符,并尽量遵从命名约定。
extends是关键字。
如果所定义的类是从某一个父类派生而来,那么,父类的名字要写在extends之后。
类定义中的数据成员变量可以有多个。
成员变量前面的类型是该变量的类型;类中的成员方法也可以有多个,其前面的类型是方法返回值的类型。
如果没有返回值,则写void。
方法体是要执行的真正语句。
在方法体中还可以定义该方法内使用的局部变量,这些变量只在该方法内有效。
方法的参数列表中可以含有0 个或多个参数,每个参数的前面要指明该参数的类型。
类定义中的修饰符是访问权限修饰符,包括 public、private和protected,也可以不写,表示是默认修饰符。
它们既可以用来修饰类,又可以修饰类中的成员,修饰符决定所修饰成员在程序运行时被访问的方式。
具体来说,用public修饰的成员表示是公有的,也就是它可以被其他任何对象访问。
类中限定为private的成员只能被这个类本身访问,在类外不可见。
用 protected修饰的成员是受保护的,只可以被同一包及其子类的实例对象访问。
如果不写任何修饰符,则表明是默认的,相应的成员可以被所在包中的各类访问。
类的示例使用类可以构造所需的各种类型。
例如,程序中要说明日期这个类型,它含有3个成员变量:日、月、年,分别用3个整数来表示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
break,continue
• break----循环中断 • continue-件switch
• switch(switch表达式){ • case 值1: ….;break; • case 值2:….;break; • case 值3:…;break; • default:… • }
switch表达式
• 必须能计算出 char,int…等基本数据类型的 值 • 值1…值N,必须与switch表达式数据类型同. • break用于中断整个switch语句
循环设计策略
• 第一步:确定要循环的语句 • 第二步:将这些语句置于循环中,比如: • while(true){ • 语句; • } • 第三步:设定循环条件及控制条件 • while(继续条件){ • 语句; • 控制继续还是退出条件; • }
while(标志值终止循环)
• 比如要求得通过键盘输入不定数目的数值 和.(输入的值不得与标志值相同) • while(data!=0)//data为输入值 • { • sum+=data;//sum保存和 • 键盘输入值保存到data; • } • print(sum);
• 特点:先执行一次循环体,再判断.
选择哪种循环?
• 继续条件在循环语句执行之前测试的采用 while或for(预测试循环),否则采用 do..while(后测试循环)
循环的转换
• while(预测试条件) {…}等价于 • for(;预测试条件;) {…}
• • • • • for(初始语句;预测试条件;循环一次后语句) {语句;} 等价于: 初始语句 while(预测试条件){ 语句;循环体后语句}
多路选择举例
• • • • • 成绩等级分析: 大于等于90分,优秀 大于等于80,良好 大于等于70,中等 大于等于60,及格 其它,不及格
逻辑运算符
• • • • &&与运算( 两者为真,则为真,否则为假) ||或运算(两者有一为真,则为真,否则为假) !非运算(原为真,取非为假,原为假,取非为真) ^异或运算(两者相异为真,相同为假)
面向对象程序设计(Java)
第四讲
If语句常见错误1
• • • • • • 忘记括号 If判断块中只有一条语句,可以省略括号. 多条语句时,括号不能省.例: if(radius>0) area= radius*radius*PI; System.out.println(“The area is “+area);
for循环
• • • • • • • • • • for(初始条件;循环条件;一次循环后执行操作) { … } 比如要求1+2+…100之和 for(i=1;i<=100;i++) { sum+=i; } 特点:执行一次初始条件,判断,循环体,循环后操作,判断…
do..while循环
• do{ • ….//循环体内语句 • }while(条件)
确认对话框
• 1:导入包 import javax.swing.JOptionPane; • 2:int option=JOptionPane.showConfirmDialog( …)
• 返回JOptionPane.YES_OPTION(0)返回 YES • JOptionPane.NO_OPTION(1)返回NO; • JOptionPane.CANCEL_OPTION(2)
else岐义
• • • • • • • int i=1,j=2,k=3; If(i>j) if(i>k) System.out.println(“A”); else System.out.println(“B”); 红色区块其实是一条组合语句
if多路选择
• • • • • • • • if( … ) … else if(…) … else if(…) … else …
错误2---if行出现”;”
• if(radius>0); • { • area= radius*radius*PI; • System.out.println(“The area is “+area); • }
布尔值冗余测试
• • • • • • if(even == true)// 等价于 if(even) { … } 注意: if(even==true)容易误写为if(even=true)
小测试
• 如果要求1+2+3+..+100之和,如何用while实 现? • 要求得1…100的奇数和呢?
一个猜数算法的实现
• 1.随机产生一个数number • 2.while(数没有猜对) • { • 输入猜测的数(guess). • if(guess>number) • print(“比number大”); • else if(geuss<number) • print(“比nmber小”); • else • print(“猜对了”); • }
举例:
• 成绩等级由多路if语句修改. • switch(grade%10){ • case 9:…break; • case 8:…break; • … • default:… • }
条件表达式
• • • • • • • if(x>0) y=1; else y=-1; 等价于 y=x>0?1:-1; 布尔表达式?表达式1:表达式2
循环
• 预输入50条信息 “Welcome to JAVA”? • 怎么办? • int count=0; • while(count<50){ • System.out.println(“Welcome to JAVA”); • count++; • }
while用法
• while(循环条件)//不满足此条件则中止循环 • { • …. • }