第4章 Java中的程序执行
Java应用教程_04Chapter
4.1.3 对象的清除
Java平台允许你创建任意个对象(当然也会 受到系统的限制),在当对象不再使用的时候被 清除的,这个过程就是所谓的“垃圾收集”。 Java运行时系统通过垃圾收集周期地释放无 用对象所使用的内存,完成对象的清除工作。 Java的垃圾收集器自动扫描对象的动态内存区, 对被引用的对象加标记,然后把没有引用的对象 作为垃圾收集起来并释放。
class Point { int x,y; Point() {x=10; y=16;} Point(int a,int b) {x=a; y=b; }}
2013年8月31日星期六
Java对象的创建案例
public class Testobject
{ public static void main(String args[]) { Point p1,p2; p1=new Point(); //为对象分配内存,使用 new 和类中的构造方法 p2=new Point(111,222); System.out.println("点p1的x坐标是:"+p1.x); System.out.println("点p1的y坐标是:"+p1.y);
一维数组的声明方式:
type var[] 或 type[] var;
例如:
int a[]; int[] a1; double b[]; Mydate []c;
Java语言中声明数组时不能指定其长度(数 组中元素的个数),例如:
int a[5]; //非法
2013年8月31日星期六
一维数组的创建
//b.day = 2;
b.year = 2003;
//不合法,无权访问该私有属性
java第四章试题
一.单选题1.下列哪个是反斜杠字符的正确表示?A、\\B、*\\C、\D、\’\’2.下列属于合法的Java标识符是____。
A、_catB、5booksC、+staticD、-3.141593.在 Java 中,表示换行符的转义字符是____。
A、\nB、\fC、'n'D、\dd4.下列赋值语句中错误的是A、float f=11.1fB、double d=5.3E12;C、char c='\r';D、byte bb=433;5.下列哪个数代表八进制整数?A、0XA6B、-1E3C、1840D、01446.int 型 public 成员变量 MAX_LENGTH,该值保持为常数100,则定义这个变量的语句是____。
A、public int MAX_LENGTH=100B、final int MAX_LENGTH=100C、public const int MAX_LENGTH=100D、public final int MAX_LENGTH=1007.十进制数16的16进制表示格式是____。
A、0x10B、0x16C、0xAD、0168.char 类型的取值范围是___。
A、2-7~27-1B、0~216-1C、-215~215-1D、0~28-19.下列叙述中,正确的是____。
A、Java语言的标识符是区分大小写的B、源文件名与public类名可以不相同C、源文件名其扩展名为.jarD、源文件中public类的数目不限10.在 Java 中,表示换行符的转义字符是____。
A、\nB、\fC、'n'D、\dd11.指出正确的表达式A、 byte=128;B、 Boolean=null;C、 long l=0xfffL;D、 double=0.9239d;12.Java的字符类型采用的是Unicode编码方案,每个Unicode码占用____个比特位。
第四章Java面向对象特性课件
对象的基本概念
面向对象程序语言三个关键特点: 封装 ( Encapsulation ) 多态 ( Polymorphism ) 继承 ( Inheritance )
1
第4章 Java面向对象特性
抽象数据类型
基本数据类型和聚集类型的变量与一些操作 (如+, -)之间不需特殊的联系。 在面向对象语言中,在数据类型的声明与操作
数据隐藏与封装举例
class Date{
private int day, month, year;
void setDate( int a, int b, int c){
day = a;
month = b;
year = c ;
}
}
…
Date d1;
d1=new Date( ); d1.setDate(30,9,2001);
4
第4章 Java面向对象特性
对象生命周期
创建对象 使用对象 清除不用的对象
5
第4章 Java面向对象特性
创建对象
创建对象的三个步骤: 声明 (Declaration ) 实例化(Instantiation) 初始化(Initialization)
例: Point origin_one ; origin_one = new Point(23, 94); Rectangle rect_one = new Rectangle(origin_one, 100, 200); Rectangle rect_two = new Rectangle(50, 100);
public void changeObjValue( PassTest ref){
ref.ptValue = 99.0f; }
《Java语言程序设计》(第3版)第4章
//显示对角线之和
for (i = 0; i < 3; i++) {
sum = sum + a[i][i];
}
System.out.println("对角线之和:" + sum);
}
}
【3】编写一程序,查找某一字符串是否包含有“abc”。
[解答]:
public class Test_3{
public static void main(String[] args) {
String s = "yangen abc";
int a = s.indexOf("abc");
//a位找到abc的下标,找不到则返回-1
if (a != -1) {
System.out.print("包含字符串abc");
} else {
System.out.print("不包含字符串abc");
(2)第一行元素的名字为a[0][0],a[0][1],a[0][2]
(3)置行1列2的元素为0,语句是a[0][1]=0;
(4)
for(int i=0;i<2;i++){
for(in j=0;j<3;j++){
a[i][j]=0;
}
}
(5)
int sum=0;
sum=a[0][2]+a[1][2];
第4章数组与字符串
【1】考虑一个2×3的数组a。
(1)为a写一个设声明。试问,这样的声明使a有多少行,多少列,多少元素?
(2)写出a的第1行的所有元素的名字。
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面向对象程序设计第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.类名最好容易识别、见名知意。当类名由几个“单词”复 合而成时,每个单词的首字母使用大写。
第四章 Java面向对象编程基础共60页
{ Date now=new Date();
if(now.getYear()m_StartWorkDateE.mgeptlYoeyaere()e>1==3n&e&wdCaoyms<m=o2n1E)mployee ()
return true;
else return false; }}
Programming in Java
类的修饰符 abstract 抽象类:没有自己的对象 abstract class A{..} A a1=new A(); final 最终类:没有子类的类 final class B{..} class C extends B{..}
Programming in Java
抽象类
4-15
➢ 用 abstract修饰的类(称为抽象类)没 有自身的对象,此类的对象均为其子类 的对象.
4-12
class Department {
int m_DeptNo=10; String m_DeptName; int m_DeptTotalEmp=30; Department(int dno,String dname,int total) {
m_DeptNo=dno; m_DeptName=new String(dname); m_DeptTotalEmp=total; } }
➢抽象类就是没有具体对象的概念类
➢ 不能创建抽象类的对象
➢ 抽象类里可以预留一部分方法给子 类实现
➢ 抽象类可以提高开发和维护的效率
Programming in Java
抽象类使用示例
4-16
பைடு நூலகம்
Programming in Java
抽象类使用示例
计算机程序设计工程师技术水平证书JAVA
计算机程序设计工程师技术水平证书(JAVA)考试大纲一、考试性质和目的:本考试的目的在于促使考生掌握JAVA语言与面向对象程序设计的概念、方法与基本技术。
并注重提高考生运用Java语言和面向对象技术解决问题的能力,使其具备独立完成各种设计项目的能力,达到程序设计工程师的水平。
二、适应岗位JA V A软件工程师/软件工程师/高级软件工程师1.熟练使用java语言,具有一定的软件工程基础;2.可根据开发规范与流程独立完成程序的设计、编码、测试以及相关文档;3.可对系统进行分析、设计、调优;4.具有良好的解决问题、Debug能力;5.具有良好沟通能力和编码习惯。
三、考试说明1.考试形式:应用工业和信息化部电子教育与考试中心考试系统,上机考试。
2.考试分值比例:程序设计工程师技术水平证书(JA V A)技术水平证书考试试卷由理论考试和实践考试两部分组成。
试卷总分值为100分,其中理论题占20分,实践题占80分。
3.考试时间:150分钟。
4.考核目标:全面考察学生对考生掌握JA V A语言与面向对象程序设计的概念、方法与基本技术的掌握水平。
四、考试内容第1章Java语言概述1.1 Java语言的形成与发展1.2 Java语言特点1.3 Java程序工作方式1.4 JDK实用程序1.5 Java程序类型1.6 Java语言编码规范第2章Java语言基础2.1 Java程序的结构2.2 表达式规则2.3 流程控制语句2.4 数组与字符串第3章Java面向对象程序设计(上)3.1 面向对象求解概述3.2 类与对象3.3 类的组合与嵌套3.4 继承3.5 多态第4章Java面向对象程序设计(下)4.1 静态变量和静态方法4.2 抽象类和抽象方法4.3 最终类和最终方法4.4 包4.5 修饰符和访问控制4.6 接口第5章java语言基础类库5.1 Java类库5.2 Java语言包(ng)5.3 Java实用程序包(java.util)5.4 Java文本包(java.text)5.5 Java数学包(java.math)第6章java程序中的异常处理6.1 程序异常概念6.2 异常与异常类6.3 异常处理6.4 异常处理原则第7章Java程序中的输入输出7.1 Java流式输入输出概述7.2 字节流类7.3 字符流类7.4 缓冲流类7.5 对象流类7.6 文件操作第8章Java数据库编程接口8.1 数据库基础知识8.2 建立Access数据库实例8.3 SQL语言入门8.4 JDBC与数据库访问第9章综合案例9.1 案例提出9.2 案例分析9.3 类的设计9.4 编码实现第10章Java开发环境与工具10.1 JDK开发工具10.2 Eclipse继承开发环境五、考试样题试题一单选择题下列关于变量及其范围的陈述中不正确的是()。
Java Web 程序设计教程 第4章习题答案(范立锋、林果园 编著)
Java Web 程序设计教程(范立锋、林果园编著)第4章 SQL与JDBC 习题答案1.简述SQL的组成部分。
SQL语言由以下3部分组成,分别是:数据库模式定义语言(DDL):CREATE、DROP、ALTER等语句。
数据操纵语言(DML):INSERT、UPDATE、DELETE、SELECT语句。
数据控制语言:GRANT、REVOKE、COMMIT、ROLLBACK等语句。
2.简述JDBC的执行步骤。
①加载JDBC驱动程序通过静态类Class类加载数据库驱动。
②取得数据库连接通过DriverManager类中的getConnection()获取数据库的连接对象Connection③执行各种SQL语句将Connection对象转换成Statement对象,通过该对象的executeUpdate()执行添加、修改以及删除的SQL语句。
④获取查询结果将Connection对象转换成Statement对象,通过该对象的executeQuery()执行查询的SQL语句,该方法返回ResultSet对象。
⑤关闭数据库连接通过Connection对象的close()方法关闭数据库连接,并抛出异常。
3.Statement对象可以处理哪些类型的SQL语句,处理这些SQL语句的主要方法是什么?Statement接口的executeUpdate(String sql)方法将执行添加(insert)、修改(update)和删除(delete)的SQL语句,执行成功后,将返回一个int型数值,该数值为影响数据库记录的行数。
该接口还可以通过executeQuery()方法查询的SQL语句。
4.PreparedStatement对象可以处理哪些类型的SQL语句,处理这些SQL语句的主要方法是什么?PreparedStatement接口的executeUpdate(String sql)方法将执行添加(insert)、修改(update)和删除(delete)的SQL语句,执行成功后,将返回一个int型数值,该数值为影响数据库记录的行数。
第四章程序设计基础
程序设 计基础
4.2 程序设计语言
程序设计语言=计算机语言
程序设计语言:用于书写计算机程序的语言。
计算机语言:计算机所能够识别的语言。
文章 程序 汉语、英语 计算机语言 字、词、语法结构 数据表示、表达式 语句结构 写文章 编程序
4-4
程序设 计基础
4.2 程序设计语言
计算机语言的分类
通用语言、专用语言 系统程序设计语言、科学计算语言 事务处理语言、实时控制语言 结构化语言 模块化语言 面向对象语言 机器语言 依赖于计算机硬件(低级语言) 汇编语言 高级语言→与计算机硬件基本无关
4-6
程序设 计基础
4.2 程序设计语言
[例题]用Intel 8086指令系统来编写机器语言程序,要 求完成 7+8=?
指令序号 机器语言程序 指令功能 1 10110000 把一加数 7 送到累加器 AL 中 00000111 2 00000100 把累加器 AL 中的内容与另一数 00001000 相加,结果仍存放在 AL 中 3 11110100 停止操作
4-30
程序设 计基础
4.4 Raptor控制结构
[例4-4] 求ax2+bx+c=0方程的根,a、b、c由键盘输入。
[解] 阅读教材相关内容,思考下列问题:假如将选择条件 disc<0 改变为 disc>=0,那么,流程图将如何变化?
(学生思考并回答,停留3分钟) [答案] Yes和No互换, 或选择结构两条分支路径的所有语句互换。
运行结果:
4-34
程序设 计基础
4.4 Raptor控制结构
[例4-6]百钱买百鸡问题。在例3-4 的基础上对流程图进行修改,使它 适应Raptor编程环境。
java学习笔记第四章面向对象(上)
第四章:面向对象(上) (2)1.面向对象和面向过程 (2)2.面向对象的特点 (2)3.类和对象 (2)4.成员变量与局部变量的区别 (2)5.匿名对象的使用 (3)6.封装 (3)7.private(私有) (3)8.构造方法 (4)9.this关键字 (4)10.this的作用 (4)11.创建对象在内存中的详细步骤 (6)12.static(静态)特点 (7)13.方法区 (7)14.静态的使用 (8)15.单例设计模式应用 (9)16.final关键字 (11)17.final和private区别 (11)第四章:面向对象(上)1.面向对象和面向过程334157810这群每日java技术分享教程和定期资料更新(1)面向过程强调过程,执行者:它是一种更符合人们思考习惯的思想;(2)面向对象强调对象,指挥者:它使复杂的内容简单化;(3)面向对象思想的特点:它使我们从执行者变成了指挥;2.面向对象的特点封装;继承;多态3.类和对象(1)类对现实世界中同一类事物的描述(成员变量和方法);(2)对象现实世界中实际存在具体的个体;4.成员变量与局部变量的区别1.作用域:成员变量的作用域是整个类中都可以访问;局部变量是的作用域是定义它的{}内,{}中的语句执行完它就被回收;2.初始值:局部变量使用前必须手动赋值,系统不会赋默认值;成员变量系统会赋默认初始值.3.所在内存区域:局部变量在方法运行的栈内存里,在栈里,会自动释放;成员变量在对象里,对象在堆里,成员变量也在堆里,不使用的对象会被垃圾回收机制在不确定的时候回收.334157810这群每日java技术分享教程和定期资料更新5.匿名对象的使用(1)当对对象中的功能只执行一次的时候使用。
(2)用于作为实际参数进行传递。
(3)可以用匿名对象调用属性,没意义.6.封装(1)封装的好处:便于重复使用,安全性高。
(2)private(私有的)权限修饰符。
7.private(私有)334157810这群每日java技术分享教程和定期资料更新private修饰成员变量和成员不能在其他类中直接访问.注意:私有仅仅是封装的一种体现形式,封装是一种思想,就是将具体实现隐藏,仅对外暴露访问方式.8.构造方法(1)用途:用于给对象中属性进行初始化。
Java面向对象第四章
第四章接口
1、接口表示一种能力和约定
2、接口只有静态常量和抽象方法
3、接口使用interface关键字修饰
4、接口有抽象类的更好的特性:
a)可以被多继承
b)设计和实现完全分离
c)更自然的使用多态
d)更容易搭建程序框架
e)更容易更换实现
5、必须知道接口特性
a)接口不可以被实例化,常作为父类类型使用,需要创建子类对象
b)实现类必须实现接口的所有方法,除非实现一个抽象类
c)实现类可以实现多个接口,解决了Java继单承的问题,使用implements实现
d)接口中的变量都是静态常量
e)接口中的方法都是抽象方法
6、什么是接口类型:
a)接口属于一种引用类型,使用interface关键字修饰
7、使用Java实现接口的步骤:
a)设计接口:说明接口有哪些能力和接口有哪些约定
b)实现所有方法:用一个类实现接口,并且实现所有方法
c)使用接口类型,类对象来实现多态
8、接口的默认形式:
a)常量默认:public static final
b)方法默认:public abstract
9、接口的两大作用:
a)接口表示一种约定:体现在接口名称和方法名称和注释上,在面向接口,
我们并不考虑实现的细节,只需要知道想完成哪些功能,每一个功能就
是一个抽象方法,所有实现接口的类,都拥有该接口的方法
b)接口表示一种能力
10、面向接口设计注意事项:
a)关心实现类有何能力,而不关心实现细节
b)面向接口的约定而不考虑接口的具体实现
11、多个类关系图的表示:实线箭头表示继承,空心箭头表示实现。
《JavaEE开发技术与案例教程》第4章 Java Web编程
第4章 Java Web编程
(3) destroy()方法 格式:public void destroy() 说明:该方法用于终止Servlet服务,销毁一个Servlet实 例。
(4) getServletConfig()方法 格式:public ServletConfig getServletConfig() 说明:该方法可获得ServletConfig对象,里面包含该 Servlet的初始化信息,如初始化参数和ServletContext 对象。
对这些初始化参数的访问可以在init()方法体中通 过getInitParameter()方法进行获取。 <load-on-startup>用于指定容器载入Servlet时的优先顺 序。如果Servlet没有设定<load-on-startup>载入优先级, 则Servlet容器会在这个Servlet被访问时再进行初始化。
所有的Servlet 对象都要实现Servlet 接口。已经实 现了Servlet 接口的javax.servlet.GenericServlet 和 javax.servlet.http.HttpServlet 这两个抽象类的子类来间 接实现Servlet 接口。
第4章 Java Web编程
1. Servlet接口 用户编写的Servlet程序都必须实现javax.servlet.Servlet 接口,该接口是ServletAPI的核心,在这个接口中有5 个方法必须实现。
第4章 Java Web编程
(2) service()方法 格式:public void service(ServletRequest req,ServletResponse res) throws ServletException,IOException 说明:Servlet成功初始化后该方法会被调用,用于处 理用户请求。该方法在Servlet生命周期中可执行很多 次,每个用户的请求都会执行一次service()方法,完成 与相应客户端的交互。
java复习题
第1章 Java语言概述习题一一、选择题1.下面关于Java Application 程序结构特点描述中,错误的是( D )。
A.一个Java Application程序由一个或多个文件组成,每个文件中可以定义一个或多个类,每个类由若干个方法和变量组成。
B.Java程序中声明有public类时,则Java程序文件名必须与public类的类名相同,并区分大小写,扩展名为.java。
C.组成Java Application程序的多个类中,有且仅有一个主类。
D.一个.java文件中定义多个类时,允许其中声明多个public类。
2.编译Java程序后生成的面向JVM的字节码文件的扩展名是( B )。
A..java B..class C..obj D..exe3.下面关于Java 语言特点的描述中,错误的是(A)。
A.Java是纯面向对象编程语言,支持单继承和多继承。
B.Java支持分布式的网络应用,可透明地访问网络上的其他对象。
C.Java支持多线程编程。
D.Java程序与平台无关、可移植性好。
4.Java SE的命令文件(java、javac、javadoc等)所在目录是( C )。
A.%JAVA_HOME%\jre B.%JAVA_HOME%\libC.%JAVA_HOME%\bin D.%JAVA_HOME%\demo5.下列关于运行字节码文件的命令行参的描述中,正确的是(C)。
A.命令行的命令字被存放在args[0]中。
B.数组args[]的大小与命令行的参数的个数无关。
C.第一个命令行参数(紧跟命令字的参数)被存放在args[0]中。
D.第一个命令行参数被存放在args[1]中。
7.Java的核心包中,提供编程应用的基本类的包是(B)。
A. B. C. D.8.编译Java程序时,用于指定生成class文件位置的选项是(A)。
A.-d B.-g C.-verbose D.-nowarn9.下列标识符(名字)命名原则中,正确的是( C )。
《JAVA面向对象程序设计》练习题库B
D. Variant
【解析】A
5.在屏幕上显示的消息正确的语句是(选择一项)
A. System.out.println(“I am Java Expert”);
B. system.out.println(“I am Java Expert”);
C. System.Out.Println(“I am Java Expert”);
B.JPopupMenu
C.JMenu
D.JMenuBar
【解析】A
2.( )是对JMenu”文件”的有效声明。(选择二项)
A.JMenu mnufile = new JMenu(“文件”);
B
Mnufile.setText(“文件”);
C.JMenu mnufile = new JMenu(“文件”);
B.JPanel
C.JScrollPane
D.JTextArea
【解析】C
4.( )是用来生成文本框的Swing组件(选择一项)
A.JComponent
B.JTextField
C.Object
D.JTextArea
【解析】B
5.( )允许在任何时间点从一组选项中只选择一个选项。(选择一项)
A.JTextArea
Mnufile.setLabel(“文件”);
D.JMenu mnufile = new JMenu(“文件”);
Mnufile.setCaption(“文件”);
【解析】AB
3.以下菜单类中,( )是父类。(选择一项)
A.JCheckBoxMenuItem
B.JRadioButtonMenuItem
B.exists();
第4章 Java语言程序设计
CommonEmployee类的所有属性为: class CommonEmployee extends Employee{ //定义子类:一般员工类 String employeeName; //姓名 int employeeNo; //个人编号 String employeeSex; //性别 //以上都是来自父类的继承属性 private double bonus; //奖金, 新定义的数据成员 …… } TimeWorker类的所有属性为: class TimeWorker extends Employee { ///定义子类:钟点工类 String employeeName; //姓名 int employeeNo; //个人编号 String employeeSex; //性别 //以上都是来自父类的继承属性 double ratePerHour; //每小时酬金,新定义的数据成员 double workHours; //当月工作小时数,新定义的数据成员 …… }
2.super关键字 super表示的是当前对象的直接父类对象,是当 前对象的直接父类对象的引用。所谓直接父类是相 对于当前对象的其他“祖先”而言的。 (1)调用父类的构造函数 super(name); //通过super()的调用,给父 类的数据成员赋初值 (2)调用父类的方法 s = super.toString();//调用父类的toString() 方法
(1)编译时多态 在编译阶段,具体调用哪个被重载的方法,编译 器会根据参数的不同来静态确定调用相应的方法。 (2)动态联编 程序中凡是使用父类对象的地方,都可以用子类 对象来代替。在程序运行期间可以通过引用子类的 实例来调用子类的方法。
4.2 继承机制
4.2.1继承的定义 定义派生类的一般格式为: class 派生类名 extends 基类名 { //派生类的属性和方法的定义 }; 其中: 基类名是已声明的类,派生类名是新生成的类名; extends说明了要构建一个新类,该类从已存在的 类派生而来。已存在的类成为基类或父类,而新类就 叫派生类或子类。
Java程序设计课堂练习题
《Java程序设计》练习题第一章 Java编程基础一、选择题1、可以使用【】实用程序编译Java程序。
A.java B.javac C.javadoc D.cmd2、可以使用【】实用程序运行java应用程序。
A.java B.javac C.javadoc D.cmd3、可以使用【】实用程序从Java源文件代码中抽取Java文档注释,生成相应的HTML帮助文档。
A.java B.javac C.javadoc D.cmd4、Java编译单元(源程序文件)的扩展名为【】A..java B..class C..doc D..exe5、编译Java源程序文件产生的字节码文件的扩展名为【】A..java B..class C..html D..exe6、以下Java应用程序执行入口main方法的声明中,正确的是【】A、public static void main()B、public static void main(String[] args)C、public static int main(String[] args)D、public void main(String[] args)7、Java属于以下哪种语言【】A.机器语言B.汇编语言C.高级语言D.以上都不对8、下面哪种类型的文件可以在Java虚拟机中运行【】A..java B..jre C..exe D..classs9、Java程序中声明包的关键字是【】A、javaB、packageC、javadocD、cmd10、如果JDK的安装路径为“d:\jdk”,若想在命令窗口中任何当前路径下,都可以直接使用javac和java命令,需要将环境变量path设置为以下哪个选项【】A、d:\jdk;B、d:\jdk\bin;C、d:\jre\bin;D、d:\jre;11、下列说法中,不正确的是【】。
A、一个Java源文件编译通过后,得到的结果文件数也只有一个B、一个Java源文件经过编译后,得到的文件的扩展名一定是.classC、一个Java源文件只能有一个public类定义,其类名与源文件名相同D、一个Java源文件可以包含多个类12、安装好JDK后,在其bin目录下有许多exe可执行文件,其中“”命令的作用是以下哪一种【】。
自考Java程序语言设计(一)第四章面向对象程序设计讲义
第四章面向对象程序设计目录第一节类和对象第二节定义方法第三节静态成员第四节包装类01 类和对象类的定义类的定义也称为类的声明。
类中含有两部分元素,分别是数据成员变量和成员方法。
类定义的一般格式如下。
修饰符 class 类名 [extends父类名]{修饰符类型成员变量1;修饰符类型成员变量2;……修饰符类型成员方法 1 (参数列表){方法体}……}其中,class是关键字,表明其后定义的是一个类。
含有class的这一行称为类头,后面大括号括住的部分称为类体。
class前的修饰符可以有多个,用来限定所定义的类的使用方式。
类名是用户为该类所起的名字,它必须是一个合法的标识符,并尽量遵从命名约定。
extends是关键字。
如果所定义的类是从某一个父类派生而来,那么,父类的名字要写在extends之后。
类定义中的数据成员变量可以有多个。
成员变量前面的类型是该变量的类型;类中的成员方法也可以有多个,其前面的类型是方法返回值的类型。
如果没有返回值,则写void。
方法体是要执行的真正语句。
在方法体中还可以定义该方法内使用的局部变量,这些变量只在该方法内有效。
方法的参数列表中可以含有0 个或多个参数,每个参数的前面要指明该参数的类型。
类定义中的修饰符是访问权限修饰符,包括 public、private和protected,也可以不写,表示是默认修饰符。
它们既可以用来修饰类,又可以修饰类中的成员,修饰符决定所修饰成员在程序运行时被访问的方式。
具体来说,用public修饰的成员表示是公有的,也就是它可以被其他任何对象访问。
类中限定为private的成员只能被这个类本身访问,在类外不可见。
用 protected修饰的成员是受保护的,只可以被同一包及其子类的实例对象访问。
如果不写任何修饰符,则表明是默认的,相应的成员可以被所在包中的各类访问。
类的示例使用类可以构造所需的各种类型。
例如,程序中要说明日期这个类型,它含有3个成员变量:日、月、年,分别用3个整数来表示。
第4章 流程控制
第四章程序流程控制一、顺序结构和选择结构任何一门编程语言都离不开流程控制,Java语言也不例外,一般流程控制有三种结构:顺序结构、选择结构和循环结构。
本节将主要介绍顺序结构和选择结构。
1.1 顺序语句其实所有的编程语言,发给计算机的命令都是按顺序一条条地执行的。
比如生活中的取钱任务一般按六步操作顺序完成。
这六步操作分别是:①带上存折或银行卡去银行;②取号排队;③将存折或银行卡递给银行职员并告知取款数额;④输入密码;⑤银行职员办理取款事宜;⑥拿到钱并离开银行。
下面的程序SequentialStatement.java就是按顺序一步一步地完成取钱任务的。
public class SequentialStatement {/*** 顺序结构语句的示例*/public static void main(String[] args) {System.out.println("第1步:带上存折或银行卡去银行");System.out.println("第2步:取号排队");System.out.println("第3步:将存折或银行卡递给银行职员并告知取款数额");System.out.println("第4步:输入密码");System.out.println("第5步:银行职员办理取款事宜");System.out.println("第6步:拿到钱并离开银行");}}上面的代码就是根据一定的顺序从main方法的{(左括号)开始到}(右括号)结束,来一行行地发送命令给计算机完成取钱的任务。
1.2 选择条件语句if条件语句是根据条件判断之后再做处理,if分支结构主要有以下几种。
l if(条件语句){…}。
l if (条件语句){…}else{…}。
l if (条件语句){…}else if(条件语句){…}else{…}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4.2.1 if语句
我们继续刚才讨论的问题。首先我们将程序的功能修改 为“只有在price和amount两个变量值都大于0的时候,才去 计算总价(totalCost)”。在Java中,我们使用if语句来让 程序“有条件的执行某个代码块”。
if关键字用来标示一个 if语句的开始
这是if语句的条件表达式
4.5 语句中不能不说的事
迄今为止,我们已经学到了Java中最常用的三种循环语句 和if-else语句。好,现在在脑子里回味一下这三种循环语句的 的语义和if-else语句的语义。现在我们回忆一下前面的例程, 要让自己一定要弄懂前面给出的例程以及例程的执行结果。现 在我们需要带着一个清醒的脑袋进入本节,否则,你可能会被 本节的内容给弄迷糊。
4.3 使用while进行循环
至今为止,我们的接触到的程序虽然有了跳转,但是程序总 的执行顺序还是顺序的从上至下的,直观地说,就是程序执行起 来是“不回头”的。在现实中,我们通常需要同一段代码循环( loop)执行多次,这时候我们应该怎么办呢?Java中的while语句 就是用来完成这个功能的,下面让我们开始本节的内容。在本节 中,我们将第一次让程序循环执行。
4.1 顺序执行
在前面的例程中,我们写的代码无一例外的都是从main方法 第一行开始执行。直到main方法的最后一行。我们所说的main方法 的第一行就是main方法中左大括号(“{”)后面的第一行程序,最 后一行就是指与那个大括号对应的右大括号(“}”)前面的一行。 我们发现顺序执行的程序只能处理很直接很简单的事情,例如 上面的例程中,我们仅仅模拟了一次“总价 = 价格 * 数量”的计算 过程。
第4章 Java中的程序执行流程
本章中我们将接触编程语言的另一个基本的部分——程 序执行流程。在进行本章之前,我们首先来回顾一下前面的 知识。这些知识都是本章需要用到的。 大括号的作用。我们在第一章中初步认识了Java中大括 号的作用。我们使用大括号来开始并结束一个类以及一个方 法的定义。 boolean类型和布尔运算符。boolean变量将在本章中扮 演十分重要的角色。虽然boolean变量只有两个值。但是确 实我们进行思考最基本的元素:真或假。 Java中基本类型的赋值和运算规则。
if { }
(一个boolean表达式或一个boolean值)
这是if语句的主体部分,可以是 空,一般会是是一段代码。
4.2.2 if语句的嵌套
if语句的代码块可以是任何符合Java语法的代码,当然 也可以包含另一个if语句。下面我们来看一个包含if语句嵌套 的例程。 if语句代码块中可以是任何符合Java语法的代码。我们 在本节中看到了if语句的嵌套。 if语句是一个多行的语句。我们知道Java中一个语句可 以有多行 if语句代码块的括号可以用来帮助我们识别代码块的开 始和结束,最好不要省略,即使if语句的代码块只有一个语 句。
前面我们介绍了三种循环的语句:while、do-while以及 for。下面我们介绍两个可以用在循环体代码中的关键字: continue和break。这两个关键字用在循环体中,可以让我们 更灵活的结束一段循环体或者一个循环语句。
4.6.1 continue关键字
continue关键字用在各种循环体中其语义是一样的,我 们以for循环为例子介绍continue关键字。其余的循环形式也 可以类比的使用continue关键字。 如果我们需要一个程序循环5次,但是在循环到第3次的 时候,循环体内的代码将不会完全被执行。要实现这个功能 ,我们可以使用前面介绍的if-else语句来判断,在这里我们 介绍如何使用continue关键字实现这个功能。
case 语句
{
{
case : case的条件值 case语句的代码块 一般会以break关键字结束 // switch语句中可以包含0个到多个case语句 default : default语句代码块 }
default 语句
4.7 使用switch进行跳转
switch语句的执行流程
switch语句开始执行 紧接着的是case语句,不是 default语句
4.2 使用if-else让程序懂得判断
迄今为止,我们的代码还都是顺序的一行行执行。如果 我们在程序中需要根据条件来判断一段代码是否执行,应该 怎么实现呢?当我们想实现类似“如果数量和单价是合理的 ,就计算总价,否则,告诉对方说数量和单价不对”这样的 逻辑的时候,就需要用到Java中的if-else语句了。if-else语句 是Java语法中用来支持程序根据一个boolean值来让程序的 执行流程进行跳转的语句。下面我们来详细讨论一下Java中 if-else语句的使用。
4.2.4 if-else语句嵌套
假设超市为了促销,在结算时对不同的消费金额赠送不 同面值的抵价券:100元一下的不送抵价券;100元(含)到 500元(含)的送55元抵价券;500元以上的赠送155元抵价 券。 当有程序需要根据多个条件执行不同操作时,我们可以 使用多个if-else语句嵌套。 有时候省略else语句块的大括号会让程序更易读。
4.6.2 break关键字
break关键字可以用在循环体中,它的语义是终止整个循 环。我们看下面这段代码,它与上一小节中的代码基本相同 ,不同的是我们将continue关键字替换为了break关键字。 break关键字的语义是终止其所在的循环或语句。 break语句结束其所在的循环,而如果有循环嵌套,则不 会终止外部的循环。 Java语法要求break语句要放在其所在的代码块的最后一 行。
for
( 初始化语句; 条件语句; 条件变化语句
)
{ // for语句的循环体 }
4.4.3 for语句省略形式
for语句的小括号内有三个语句,其实这三个语句都是 可以省略(也就是留空)的。首先我们省略第一个和第三个 语句,可以让for语句看起来与while语句几乎一样。for语句 的省略形式给for语句带来了灵活,但是这种省略形式并不 是值得推荐的。我们还是应该尽量按照for语句最普通的用 法来使用for语句。 for语句小括号内的三个语句都是可以省略的,但是这 并不值得推荐。
while
(while语句的条件表达式)
}
4.3.2 使用do-while语句
下面我们介绍while语句的另一种形式——do-while语句。其中 “do”也是Java中的关键字。它的功能与while语句是一样的,但是在某些 情况下,使用do-while语句会让程序写起来更轻松。现在我们接触到的程 序还无法找到可以让do-while语句显得比while语句更方便的例程。
不等
是case语句
将switch语句的带匹配值与 ca码块执行
遇到break语句
结束
直到switch语句结束
结束
4.8 大例子
本节中我们将接触如何使用Java读取命令行输入的数据 ,让程序更加互动。然后,我们将使用用户输入的数据来构 建一个模拟的超市结账程序。
为了方便的使用for语句,我们在这里需要先介绍一下Java中 的自增和自减运算符。首先我们介绍自增运算符,自增运算符在 Java中是两个连续的加号(++)。自增运算符是一个一元运算符, 它的作用是将数字类型的变量的值加1。 加加运算和减减运算可以用在Java中任何表示数字的基本类型 上。 加加运算(++)和减减运算(--)是用来方便的对变量进行加 1或者减1操作的。 “++”和“--”写在运算符的前面或者后面有不同的运算顺序。 在一个运算式中使用“++”或“--”操作符时,要注意不要引起 歧义。
4.7 使用switch进行跳转
本节中我们将接触Java中的switch语句。switch语句比 起前面我们介绍的语句,语法结构最复杂,而且涉及的关键 字可以说是最多的。但是switch却不难理解。switch语句不 是用来循环的,它是用来根据一个int变量或者char变量的值 让程序进行分支的。 switch (待匹配值) 1.case语句 { 2 default语句
if (if语句的条件表达式) { // 如果条件表达式值为true,则执行此段代码,并在代码执行后跳过else代码段。 // 如果条件表达式值为false,则跳过此段代码,执行else代码块。 } else { // 如果条件表达式值为true,则执行此段代码将被跳过。然后程序顺序向下执行 // 如果条件表达式值为false,则执行此段代码 }
4.4.2 for语句
下面我们回到主题,讲解for语句。我们给出使用for语 句循环的例程,例程中就是使用for语句替换了while语句, 程序的功能与while语句的例程是一样的。
1:初始化语句只执行一遍,它是 for语句首先被执行的语句。 2:条件语句用来判断 循环体是否执行 3:条件变化语句在每次循环体执 行完毕后执行,一般用来改变条件 语句中使用的条件
4.5.2 别让循环次数给弄懵了
大多数情况下,我们会使用一个int变量来控制循环的 次数,上面的关于循环的例程中无一例外都是这样做的。假 设我们用int变量times来控制循环的次数,对于最常用的for 循环,如果我们想让循环体执行n次,那么最常见的写法就 是:给times赋值为0;然后把条件语句设置为times < n;然 后在条件变化语句或者循环体内将times的值加1。这对于 while语句也是同样适用的。对于do-while语句,如果n大于 等于1,也是适用的。
4.8.1 从控制台读取数据
小节中我们将给出Java从控制台读取数据的代码。代码 中涉及到了很多我们没有接触过的知识。我们在这里不去关 心这些细节,我们知道知道这些代码是用来帮助我们从控制 台读取数据的就可以了。
4.2.3 if-else语句
理解了if以后,else就很好理解了。“else”也是java中的关键字, 它只能和if语句配合使用,用来处理if条件表达式的值为false的情况。 Java语法中,else后面也会跟一个用大括号括起来的代码块。这个代码 块会执行的条件就是if语句的条件表达式的值为false,也就是if语句主体 没有执行。if-else组合在一起的语义就是:“如果”条件表达式值为真 ,则执行if代码块,“否则”就执行else代码块。