简述构造方法的作用
简述构造方法的作用
构造方法是面向对象编程中的一个重要概念,它在创建对象时被调用,用于对对象的初始化。
本文将从多个角度来探讨构造方法的作用。
1. 对象初始化
构造方法的主要作用是在对象创建时对其进行初始化。
在调用构造方法时,会为对象分配内存空间,并执行构造方法中的代码,对对象的成员变量进行赋值。
通过构造方法,我们可以确保对象在创建后处于一个合理的初始状态,以便进行后续的操作。
2. 确保对象的一致性
构造方法可以用于确保对象的一致性。
一致性是指对象在创建后,其内部状态符合预期。
通过在构造方法中对对象进行初始化,我们可以避免对象在创建后处于不一致的状态。
例如,在创建一个银行账户对象时,我们可以在构造方法中设置账户初始余额为0,以确保账户的一致性。
3. 提供默认值
构造方法可以为对象的成员变量提供默认值。
当我们创建一个对象时,如果没有显式地对成员变量进行赋值,那么这些成员变量会被自动初始化为其对应类型的默认值。
通过构造方法,我们可以在对象创建时为成员变量提供自定义的默认值,以满足特定的需求。
构造方法可以像普通方法一样进行重载。
通过为同一个类定义多个不同参数列表的构造方法,我们可以根据不同的参数组合来创建对象。
这样可以提高代码的灵活性和复用性。
例如,一个人类的构造方法可以有不同的参数组合,可以只传入姓名、只传入年龄,或者同时传入姓名和年龄。
5. 继承与构造方法
在继承关系中,子类的构造方法可以调用父类的构造方法来完成对父类部分的初始化。
通过使用super关键字,子类的构造方法可以显式地调用父类的构造方法,并传递所需的参数。
这样可以确保子类对象在创建时,父类部分的状态得到正确地初始化。
6. 防止对象的不变性被破坏
在某些情况下,我们希望对象在创建后保持不可变。
通过将构造方法定义为私有的,我们可以防止外部代码直接创建对象,只能通过提供的静态方法来获取对象的实例。
这样可以确保对象的不变性,并提供更好的封装性。
7. 实现接口
在某些情况下,我们需要为接口定义一个实现类。
接口无法直接实例化,但是可以通过实现类的构造方法来创建对象。
通过实现类的构造方法,我们可以为接口的成员变量进行初始化,并提供具体的
总结起来,构造方法在面向对象编程中起着至关重要的作用。
它可以在对象创建时对其进行初始化,确保对象的一致性;提供默认值,增加代码的灵活性;实现重载,提高代码的复用性;在继承关系中完成对父类的初始化;防止对象的不变性被破坏;实现接口的实例化等。
通过合理使用构造方法,我们可以创建出更加健壮、灵活和易于维护的面向对象程序。
《Java基础入门》(第二版)习题汇总(1)
1.1 习题一、填空题1、Java的三大体系分别是______、______、______。
2、Java程序的运行环境简称之为______。
3、编译Java程序需要使用______命令。
4、javac.exe和java.exe两个可执行程序存放在JDK安装目录的______目录下。
5、______环境变量用来存储Java的编译和运行工具所在的路径,而______环境变量则用来保存保存Java虚拟机要运行的“.class”文件路径。
二、判断题1、通过Java虚拟机可以在不同的操作系统上运行Java程序,从而实现跨平台特性。
2、JRE中又包含了Java基础类库、JVM和开发工具。
3、Java中的包是专门用来存放类的,通常功能相同的类存放在相同的包中。
4、java.util:包含Java中大量工具类、集合类等,例如Arrays、List、Set等。
5、Java语言和C语言一样,是面向过程的语言。
三、选择题1、以下选项中,哪些属于JDK工具?(多选)A、Java编译器B、Java运行工具C、Java文档生成工具D、Java打包工具2、Java属于以下哪种语言?A、机器语言B、汇编语言C、高级语言D、以上都不对3、下面哪种类型的文件可以在Java虚拟机中运行?A、.javaB、.jreC、.exeD、.class4、安装好JDK后,在其bin目录下有许多exe可执行文件,其中java.exe命令的作用是以下哪一种?A、Java文档制作工具B、Java解释器C、Java编译器D、Java启动器5、如果jdk的安装路径为:d:\jdk,若想在命令窗口中任何当前路径下,都可以直接使用javac和java命令,需要将环境变量path设置为以下哪个选项?A.d:\jdk; B.d :\jdk\bin; C.d:\jre\bin; D.d:\jre;四、简答题1、简述Java的特点。
2、简述JRE与JDK的区别。
3、简述Java的运行机制。
合肥工业大学JAVA程序设计问答题
1、JAVA语言有哪些特点特点:简单性、面向对象技术、分布性、健壮性、安全性、体系结构中立、可移植性、解释执行、高性能、多线程..完全面向对象、平台无关性、多线程2、JAVA平台是什么其运行原理是什么与一般操作平台的不同JAVA平台:由JAVA虚拟机和JAVA核心类构成;为JAVA程序开发提供编程接口且与具体的操作系统无关的平台..运行原理:JAVA代码由编译器编译成字节代码文件;然后由JAVA解释器解释执行其字节文件..与一般操作平台的不同:JAVA是解释执行程序;编译后产生的文件中不含有硬件信息;并且其支持跨平台的运行..3、字节码好处字节码:经过JAVA编译器编译后;与特定机器无关;需要解释器才能执行的中间代码..好处:字节码中不包含有硬件信息;为JAVA跨平台的运行提供了基础..4、什么是变量名变量名与变量值有什么区别变量是用来标识一块内存区域..变量名是一个标识符;用来引用一块内存区域;变量值是内存区域中存储的值..5、什么是表达式什么是语句两者之间有什么异同表达式是用运算符及操作元连接符合一定语法规则的式子;语句是一个表达式最后加上一个分号..异同:语句是程序的组成部分;表达式是语句的组成部分;语句有结束符;表达式没有结束符;语句是针对程序而言的;表达式是数学上的计算概念;算式的计算结果“=”在右边;赋值语句“=”在表达式的左边..6、Break和Continue语句的区别Break语句是跳出整个循环;并且不执行循环体内的程序;而Continue 语句则是跳出此次循环;还可以继续执行循环体..7、Do……while语句和While语句的区别Do……while 语句是先执行一次循环体的内容再判断;而While则是先判断然后再执行循环体的内容..8、什么是类如何定义一个类类中包含了哪几部分;分别是什么类是某些对象共同特征的表示;是对象的抽象..定义一个类需要在定义类的结构中包含类的声明和类的实体..类在语法上包含了类的声明和类体两个部分;其中类的声明部分由关键字class与类名组成;类体中包含变量的说明;方法的定义与实现两个部分..9、什么是对象如何创建对象对象是类的具体;是操作的直接对象..创建对象需要借助new操作符和构造函数配合使用;一般格式为:类名对象名 = new 类名10、什么是构造方法构造方法有那些特点构造方法是一个类方法中方法名与类名相同的类方法;其作用是当使用new关键字创建对象时;自动调用并对新建对象进行初始化操作..构造方法特点:a.构造方法与类名相同b.构造方法没有返回值;不定义返回类型c.构造方法可以重载;针对参数数量和类型定义多个同名构造方法d.构造方法可以继承;子类可以继承父类的构造方法e.构造方法不是由编程人员显式调用;其在对象创建时由new运算符自动调用f.构造方法只用来对类实例进行初始化;目的在于简化初始化操作11、如何对对象进行初始化对象的初始化是在对象创建完之后用构造方法对其进行初始化的操作;该操作的一般语法为类名对象名 = new 构造方法12、静态方法与非静态方法的区别静态方法与非静态方法的语法上的区别在于是否被static关键字修饰a.非静态方法可以对静态变量和非静态变量操作;而静态方法只能对静态变量进行操作b.静态方法可以有对象调用也可以由类名直接调用;而非静态方法只能由对象调用c.一个类中的方法可以互相调用;但静态方法只能调用静态方法;不能调用非静态方法d.创建对象之前;非静态方法没有入口13、final成员变量和方法有什么特点final成员变量一般在声明是进行初始化;一旦最终成员变量被赋值;则在整个程序执行过程中都不能被改变;final方法不能被重复定义或者更改方法内容;即被重载..14、什么是类的封装如何对成员变量和方法的访问权限的设置以达到数据封装的目的类的封装是指类的设计者为使用者提供类对象可以访问的部分;而对于类中其余的成员变量和方法隐藏起来;用户不能访问..可以通过public、protected、private、默认四种控制符来实现数据封装的目的..15、子类能够继承父类的哪些成员变量和方法子类中可以继承父类中的public和protected成员..16、多态中的重载和覆盖有什么不同覆盖是子类对父类同名方法的重定义;其方法名同而方法内容不同;重载是指在类中创建多个方法;它们具有相同的名称但有不同的参数和不同的实现..17、如何来制作图形界面它需要引入哪些包制作图形界面首先要创建一个窗口容器并在窗口中添加各种组件;接着在指定组件属性和在窗口中的位置;构成图形界面的外观效果;然后定义图像界面的事件和各种组件对不同事件的响应;从而实现图形界面和用户的交互..需要引用的包有:AWT、Swing18、在Java中什么是事件简述处理事件的机制..事件是指人机交互所产生的交互内容;其代表某对象可执行的操作及其状态变化..处理事件的机制:事件源根据触发事件产生一个事件对象;事件对象传递参数并调用监听器相应的处理方法..19、什么是布局器;它有什么作用布局管理器就是一个用来安排其他容器和基本组件的对象..其主要是用来安排和管理其它组件在窗口中的位置..20、何为异常为什么要进行异常处理异常是指程序运行过程中出现的非正常..良好的应用程序除了具备用户所要求的功能外还应该具备预见性并处理可能发生的各种各种异常功能..21、Error和Exception类有什么不同Error类是处理内部系统错误;Exception类是解决程序本身及其环境所产生的异常..Exception类可以被捕获和处理;Error类异常只能在发生时由用户按照系统提示关闭程序..22、什么是抛出异常如何抛出异常抛出异常是指在程序过程中通过throw语句以“throw new 异常类名”的格式抛出异常..异常名可以选择系统异常类名;也可以使用自定义异常类名..23、什么是TCP/IP协议它有什么特点TCP/IP协议;传输控制协议\因特网互联协议;其是一个基于连接的协议;提供两台计算机之间的可靠的数据流..特点:A.开放的协议标准;可免费使用;并且独立于特定的计算机硬件与操作系统B.独立于特定的网络硬件;可以运行在局域网、广域网;更适用于互联网中C.统一的网络地址分配方案;使整个TCP/IP设备在网中都具有唯一的地址D.标准化的高层协议;可以提供多种可靠的用户服务24、一个完整的URL的地址由哪几部分组成一个完整的URL可分为四个部分:资源类型、存放资源的主机域名、资源文件名和端口..25、URL连续从服务器上读取一个文本文件;并显示该文本文件的内容实例化URL对象->实例化URLConnection对象->实例化InputStreamReader对象->实例化BufferReader对象26、简述Socket通信机制;说明客户端如何与服务器进行连接..Socket通信机制:A.服务器生成一个ServerSocket实例对象;随时监听客户端的连接请求B.客户端生成一个Socket实例对象;并发出连接请求C.服务器端通过accept方法接受到客户端的请求后;开辟一个端口与进行连接;并生成所需的I/O数据流D.通信通过一对InputStream和OutputStream进行通信;通信结束后;两端分别关闭对应的Socket接口27、简述URL与Socket通信的区别..URL和Socket通信的区别:A.通信方式:Socket在服务器端运行通信程序;不停地监听客户端连接请求;使服务器能够在接受到请求时马上与客户端连接并通信;URL进行通信时;被动等待客户端的请求..B.连接数:Socket服务器可以同时与多个客户端进行相互通信;URL 通信服务器每次只能与一个客户端进行通信..28、何为线程和多线程如何建立多线程线程是一个程序内部的顺序控制流;多线程是在同一个应用程序中有多个顺序控制流同时执行..创建线程有两种方法:继承Thread类、通过定义实现新Runnable接口..29、线程的生命周期由哪几种状态各状态之间分别用哪些方法切换线程的生命周期有:就绪、可运行、不可运行、终止四种..就绪->可运行:start可运行->可运行:yield可运行->不可运行:sleep、wait不可运行->可运行 : 阻塞解除、睡眠时间终止、唤醒可运行->终止:run。
java程序设计使用教程(第2版)答案
第一章习题答案一、简答题1.Java语言有哪些特点?主要用于能够哪些方面的软件开发?特点:(1)面向对象,(2)平台无关性,(3)分布式,(4)可靠性和安全性,(5)多线程,(6)简单性,(7)健壮性,(8)高性能,(9)灵活性。
适用范围:(1)所有面向对象的应用开发,包括面向对象的事件描述、处理、综合等。
(2)计算过程的可视化、可操作化的软件的开发。
(3)动态画面的设计,包括图形图象的调用。
(4)交互操作的设计。
(5)Internet 的系统管理功能模块的设计,包括 Web 页面的动态设计、管理和交互操作设计等。
(6)Intranet上的软件开发(直接面向企业内部用户的软件)。
(7)与各类数据库连接查询的 SQL 语句实现。
(8)网络通信与移动通信,网络集成方面。
2.Java程序分为哪两类?各有什么特点?如何区分它们?Java语言程序分为两类:应用程序Application和小程序Applet,它们是利用Java语言生成的可运行代码中最常用的两种,两者都必须在Java虚拟机上运行。
Application更象我们平常用VB,VC等编写的桌面程序,多以控制台(CONSOLE)方式运行,当然也很容易实现窗口应用。
Applet则需要嵌入Web页面中,在支持Java虚拟机的浏览器上运行。
区分办法:应用程序Application中一定包括一个主方法main,而小程序Applet没有这个方法。
3.简述Java程序的运行过程。
一个Java源的运行需要经过三个步骤:(1)编辑源程序,产生.Java的源程序文件(2)运用Java虚拟机JVM将源文件编译为.class的字节码文件(3)根据程序的不同类型运行程序。
对于应用程序直接调用运行命令执行字节码文件,而对于小程序Applet,需要先将字节码文件嵌入HTML文件,然后用浏览器软件打开HTML文件。
4.什么是Java虚拟机?简述其工作机制。
Java虚拟机(Java Virtual Machine—JVM)是一种利用软件方法实现硬件功能的抽象化的计算机,它基于下层的操作系统和硬件平台,可以在上面执行Java的字节码程序。
oracle最新java试题(学生)
ORACLE软件工程师培训班JAVA基础试卷一、单选题1. 在面向对象方法中,实现信息隐蔽是依靠:A)对象的继承 B)对象的多态C)对象的封装 D)对象的分类2. 对成员的访问控制保护最强的是()。
A)public B)缺省 C)private D)protected3.可用作Java标识符的是()。
A)#123# B)@ C)_date D)10years4.属于Java输入输出流的、且处理的是char类型的类是()。
A)Reader类 B)InputStream类 C)OutputStream类 D)File类5.用于存放创建后则不变的字符串常量是()。
A)String类 B)StringBuffer类 C)Character类 D)以上都不对6. JDK中提供的文档生成器是()。
A)java.exe B)javap.exe C)javadoc.exe D)javaprof.exe7. 下列语句中,属于多分支语句的是()。
A)if语句B)switch语句 C)do while语句 D)for语句8.给定下列代码:public class Person {static int arr[] = new int[10];public static void main(String a[]) {System.out.println(arr[1]);}}下列说法正确的有:( )A. 编译时将发生错误。
B. 编译时正确但是运行时出错。
C. 输出为0。
D. 输出为null9. 设有四个线程,它们的优先级分别为如下四种之一。
则那种级别的线程优先执行?( )A. Thread.MIN_PRIORITYB. Thread.MAX_PRIORITYC. Thread.NORM_PRIORITYD. 优先级别码为 7 级10.设 x = 1 , y = 2 , z = 3,则表达式 y+=z--/++x-x 的值是?( )A. 0B. 1C. 2D. 311. 在Java语言中,类Student是类Person的子类,Student的构造方法中有一句"super()",该语句表达了什么概念?A. 调用类Worker中定义的super()方法B. 调用类Person中定义的super()方法C. 调用类Person的构造方法D. 语法错误12.在java中,哪一个关键字使类不能派生出子类。
Java-2实用教程(第5版)习题解答
习题解答之马矢奏春创作习题1(第1章)一、问答题1.Java语言的主要贡献者是谁?2.开发Java应用法式需要经过哪些主要步伐?3.Java源文件是由什么组成的?一个源文件中必需要有public类吗?4.如果JDK的装置目录为D:\jdk, 应当怎样设置path和classpath的值?5.Java源文件的扩展名是什么?Java字节码的扩展名是什么?6.如果Java应用法式主类的名字是Bird, 编译之后, 应当怎样运行该法式?7.有哪两种编程风格, 在格式上各有怎样的特点?1.James Gosling2.需3个步伐:1)用文本编纂器编写源文件.2)使用javac编译源文件,获得字节码文件.3)使用解释器运行法式.3.源文件由若干个类所构成.对应用法式, 必需有一个类含有public static void main(String args[])的方法, 含有该方法的类称为应用法式的主类.纷歧定, 但至多有一个public类. 4.set classpath=D:\jdk\jre\lib\rt.jar;.;5. java和class6. java Bird7.独行风格(年夜括号独有行)和行尾风格(左年夜扩号在上一行行尾, 右年夜括号独有行)二、选择题1.B.2.D.1.下列哪个是JDK提供的编译器?2.下列哪个是Java应用法式主类中正确的main方法?A)public void main (String args[ ])B)static void main (String args[ ])C)public static void Main (String args[])D)public static void main (String args[ ])三、阅读法式阅读下列Java源文件, 并回答问题.public class Person {void speakHello() {System.out.print("您好, 很高兴认识您");System.out.println(" nice to meet you");}}class Xiti {public static void main(String args[]) {Person zhang = new Person();zhang.speakHello();}}(a)上述源文件的名字是什么?(b)编译上述源文件将生成几个字节码文件?这些字节码文件的名字都是什么?(c)在命令行执行java Person获得怎样的毛病提示?执行java xiti获得怎样的毛病提示?执行java Xiti.class获得怎样的毛病提示?执行java Xiti获得怎样的输出结果?1.(a)Person.java.(b)两个字节码, 分别是Person.class 和Xiti.class.(c)获得“NoSuchMethodError”, 获得“NoClassDefFoundError: Xiti/class”, 获得“您好, 很高兴认识您 nice to meet you”习题2(第2章)一、问答题1.什么叫标识符?标识符的规则是什么?false是否可以作为标识符.2.什么叫关键字?true和false是否是关键字?请说出6个关键字.3.Java的基本数据类型都是什么?4.float型常量和double型常量在暗示上有什么区别?5. 怎样获取一维数组的长度,怎样获取二维数组中一维数组的个数.1.用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符.标识符由字母、下划线、美元符号和数字组成, 第一个字符不能是数字.false不是标识符.2.关键字就是Java语言中已经被赋予特定意义的一些单词, 不成以把关键字作为名字来用.true和false不是关键字.6个关键字:class implements interface enum extends abstract. 3.boolean, char, byte, short, int, long, float, double. 4.float常量必需用F或f为后缀.double常量用D或d为后缀, 但允许省略后缀.5.一维数组名.length.二维数组名.length.二、选择题2.下列哪三项是正确的float变量的声明?adfA. float foo = -1;B. float foo = 1.0;C. float foo = 42e1;D. float foo = 2.02f;E. float foo = 3.03d;F. float foo = 0x0123;3.下列哪一项叙述是正确的?bA. char型字符在Unicode表中的位置范围是0至32767B. char型字符在Unicode表中的位置范围是0至65535C. char型字符在Unicode表中的位置范围是0至65536D. char型字符在Unicode表中的位置范围是-32768至32767 4.以下哪两项是正确的char型变量的声明?beA. char ch = "R";B. char ch = '\\'C. char ch = 'ABCD';D. char ch = "ABCD";E. char ch = '\ucafe';F. char ch = '\u10100'5.下列法式中哪些【代码】是毛病的?2345public class E {public static void main(String args[]) {int x = 8;byte b = 127; //【代码1】b = x; //【代码2】x = 12L; //【代码3】long y=8.0; //【代码4】float z=6.89 ; //【代码5】}}6.对int a[] = new int[3];下列哪个叙述是毛病的?bA. a.length的值是3.B. a[1]的值是1.C. a[0]的值是0.D. a[a.length-1]的值即是a[2]的值.1.C.2.ADF.3.B.4.BE.5.【代码2】【代码3】【代码4】【代码5】.6.B.三、阅读或调试法式1.属于把持题, 解答略.2.属于把持题, 解答略.3.属于把持题, 解答略.4.下列法式标注的【代码1】, 【代码2】的输出结果是什么?public class E {public static void main (String args[ ]){long[] a = {1,2,3,4};long[] b = {100,200,300,400,500};b = a;System.out.println("数组b的长度:"+b.length); //【代码1】System.out.println("b[0]="+b[0]); //【代码2】}}5.下列法式标注的【代码1】, 【代码2】的输出结果是什么?public class E {public static void main(String args[]) {int [] a={10,20,30,40},b[]={{1,2},{4,5,6,7}};b[0] = a;b[0][1] = b[1][3];System.out.println(b[0][3]); //【代码1】System.out.println(a[1]); //【代码2】}}4.【代码1】:4.【代码2】:b[0]=1.5.【代码1】:40.【代码2】:7四、编写法式1.编写一个应用法式, 给出汉字‘你’、‘我’、‘他’在Unicode表中的位置.2.编写一个Java应用法式, 输出全部的希腊字母.1. public class E {public static void main(String args[]) {System.out.println((int)'你');System.out.println((int)'我');System.out.println((int)'他');}}2. public class E {public static void main (String args[ ]) {char cStart='α',cEnd='ω';for(char c=cStart;c<=cEnd;c++)System.out.print(" "+c);}}习题3(第3章)一、问答题1.关系运算符的运算结果是怎样的数据类型?2.if语句中的条件表达式的值是否可以是int型?3.while语句中的条件表达式的值是什么类型?4.switch语句中必需有default选项码?5.在while语句的循环体中, 执行break语句的效果是什么?6.可以用for语句取代while语句的作用吗?1.boolean2.不成以3.boolean4. 不是必需的5.结束while语句的执行6.可以二、选择题1.下列哪个叙述是正确的?aA. 5.0/2+10的结果是double型数据.B.(int)5.8+1.0的结果是int型数据.C.'苹'+ '果'的结果是char型数据.D.(short)10+'a'的结果是short型数据.2.用下列哪个代码替换法式标注的【代码】会招致编译毛病?cA.m-->0 B.m++>0 C.m = 0 D.m>100&&truepublic class E {public static void main (String args[ ]) {int m=10,n=0;while(【代码】) {n++;}}}3.假设有int x=1;以下哪个代码招致“可能损失精度, 找到int 需要char”这样的编译毛病. cA.short t=12+'a'; B.char c ='a'+1; C.char m ='a'+x; D.byte n ='a'+1;1.A. 2.C. 3.C.三、阅读法式1.下列法式的输出结果是什么?public class E {public static void main (String args[ ]) { char x='你',y='e',z='吃';if(x>'A'){y='苹';z='果';}elsey='酸';z='甜';System.out.println(x+","+y+","+z);}}序的输出结果是什么?public class E {public static void main (String args[ ]) { char c = '\0';for(int i=1;i<=4;i++) {switch(i) {case 1: c = 'J';System.out.print(c);case 2: c = 'e';System.out.print(c);break;case 3: c = 'p';System.out.print(c);default: System.out.print("好"); }}}}3.下列法式的输出结果是什么?public class E {public static void main (String []args) { int x = 1,y = 6;while (y-->0) {x--;}System.out.print("x="+x+",y="+y);}}x=0,y=5x=-1,y=4x=-2,y=3x=-3,y=2x=-4,y=1x=-5,y=0x=-5,y=-11.你,苹,甜2.Jeep好好3.x=-5,y=-1四、编法式题1.编写应用法式求1!+2!+…+10!.2.编写一个应用法式求100以内的全部素数.3.分别用do-while和for循环计算1+1/2!+1/3!+1/4!……的前20项和.4.一个数如果恰好即是它的因子之和, 这个数就称为“完数”.编写应用法式求1000之内的所有完数.5.编写应用法式, 使用for循环语句计算8+88+888…前10项之和.6.编写应用法式, 输出满足1+2+3…+n<8888的最年夜正整数n. 1.public class Xiti1 {public static void main(String args[]) {double sum=0,a=1;int i=1;while(i<=20) {sum=sum+a;i++;a=a*i;}System.out.println("sum="+sum);}}2.public class Xiti2{public static void main(String args[]) { int i,j;for(j=2;j<=100;j++) {for(i=2;i<=j/2;i++) {if(j%i==0)break;}if(i>j/2) {System.out.print(" "+j);}}}}3.class Xiti3 {public static void main(String args[]) {double sum=0,a=1,i=1;do { sum=sum+a;i++;a=(1.0/i)*a;}while(i<=20);System.out.println("使用do-while循环计算的sum="+sum);for(sum=0,i=1,a=1;i<=20;i++) {a=a*(1.0/i);sum=sum+a;}System.out.println("使用for循环计算的sum="+sum);}}4.publicclass Xiti4 {public static void main(String args[]) {int sum=0,i,j;for(i=1;i<=1000;i++) {for(j=1,sum=0;j<i;j++) {if(i%j==0)sum=sum+j;}if(sum==i)System.out.println("完数:"+i);}}}5.public class Xiti5 {public static void main(String args[]) {int m=8,item=m,i=1;long sum=0;for(i=1,sum=0,item=m;i<=10;i++) {sum=sum+item;item=item*10+m;}System.out.println(sum);}}6.public class Xiti6{public static void main(String args[]) {int n=1;long sum=0;while(true) {sum=sum+n;n++;if(sum>=8888)break;}System.out.println("满足条件的最年夜整数:"+(n-1));}}习题4(第4章)一、问答题1.面向对象语言有哪三个特性?2.类名应当遵守怎样的编程风格?3.变量和方法的名字应当遵守怎样的编程风格?4.类体内容中声明成员变量是为了体现对象的属性还是行为?5.类体内容中界说的非构造方法是为了体现对象的属性还是行为?6.什么时候使用构造方法?构造方法有类型吗?7.类中的实例变量在什么时候会被分配内存空间?8.什么叫方法的重载?构造方法可以重载吗?9.类中的实例方法可以把持类变量(static变量)吗?类方法(static方法)可以把持实例变量吗?可以.不成以.10.类中的实例方法可以用类名直接调用吗?8.一个类中可以有多个方法具有相同的名字, 但这些方法的参数必需分歧, 即或者是参数的个数分歧, 或者是参数的类型分歧.可以.9.10.不成以.11.简述类变量和实例变量的区别.12.this关键字代表什么?this可以呈现在类方法中吗?1. 封装、继承和多态.2.当类名由几个单词复合而成时, 每个单词的首字母使用年夜写. 3.名字的首单词的首字母使用小写, 如果变量的名字由多个单词组成, 从第2个单词开始的其它单词的首字母使用年夜写.4.属性5.行为6.用类创立对象时.没有类型7.用类创立对象时.8.一个类中可以有多个方法具有相同的名字, 但这些方法的参数必需分歧, 即或者是参数的个数分歧, 或者是参数的类型分歧.可以.9.可以.不成以.10.不成以.11.一个类通过使用new运算符可以创立多个分歧的对象, 分歧的对象的实例变量将被分配分歧的内存空间.所有对象的类变量都分配给相同的一处内存, 对象共享类变量.12.代表调用以后方法的对象.不成以.二、选择题1.下列哪个叙述是正确的? bA.Java应用法式由若干个类所构成, 这些类必需在一个源文件中.B.Java应用法式由若干个类所构成, 这些类可以在一个源文件中, 也可以分布在若干个源文件中, 其中必需有一个源文件含有主类.C.Java源文件必需含有主类.D.Java源文件如果含有主类, 主类必需是public类.2.下列哪个叙述是正确的? dA.成员变量的名字不成以和局部变量的相同.B.方法的参数的名字可以和方法中声明的局部变量的名字相同.C.成员变量没有默认值.D.局部变量没有默认值.3.对下列Hello类, 哪个叙述是正确的?dA.Hello类有2个构造方法.B.Hello类的int Hello()方法是毛病的方法.C.Hello类没有构造方法.D.Hello无法通过编译, 因为其中的hello方法的方法头是毛病的(没有类型).class Hello {Hello(int m){}int Hello() {return 20;}hello() {}}4.对下列Dog类, 哪个叙述是毛病的?dA.Dog(int m)与Dog(double m)互为重载的构造方法.B.int Dog(int m)与void Dog(double m)互为重载的非构造方法.C.Dog类只有两个构造方法, 而且没有无参数的构造方法.D.Dog类有3个构造方法.class Dog {Dog(int m){}Dog(double m){}int Dog(int m){return 23;}void Dog(double m){}}构造方法是一种特殊的方法, 与一般的方法分歧是:1.构造方法的名字必需与界说他的类名完全相同, 没有, 甚至连void 也没有.2.构造方法的调用是在创立一个对象时使用new把持进行的.构造方法的作用是初始化对象.3.不能被static、final、synchronized、abstract和native修饰.构造方法不能被子类继承.5.下列哪些类声明是毛病的?cdA)class AB)public class AC)protected class AD)private class A6.下列A类中【代码1】~【代码5】哪些是毛病的?1 4 class Tom {private int x=120;protected int y=20;int z=11;private void f() {x=200;System.out.println(x);}void g() {x=200;System.out.println(x);}}public class A {public static void main(String args[]) {Tom tom=new Tom();tom.x=22; //【代码1】tom.y=33; //【代码2】tom.z=55; //【代码3】tom.f(); //【代码4】tom.g(); //【代码5】}}7.下列E类的类体中哪些【代码】是毛病的.4class E {int x; //【代码1】long y = x; //【代码2】public void f(int n) {int m; //【代码3】int t = n+m; //【代码4】}}1.B.2.D.3.D.4.D.5.CD.6.【代码1】【代码4】.7.【代码4】.三、阅读法式1.说出下列E类中【代码1】~【代码3】的输出结果.class Fish {int weight = 1;}class Lake {Fish fish;void setFish(Fish s){fish = s;}void foodFish(int m) {fish.weight=fish.weight+m;}}public class E {public static void main(String args[]) {Fish redFish = new Fish();System.out.println(redFish.weight); //【代码1】 Lake lake = new Lake();lake.setFish(redFish);lake.foodFish(120);System.out.println(redFish.weight); //【代码2】 System.out.println(lake.fish.weight); //【代码3】}}2.请说出A类中System.out.println的输出结果. class B {int x=100,y=200;public void setX(int x) {x=x;}public void setY(int y) {this.y=y;}public int getXYSum() {return x+y;}}public class A {public static void main(String args[]) {B b=new B();b.setX(-100);b.setY(-200);System.out.println("sum="+b.getXYSum());}}3.请说出A类中System.out.println的输出结果. class B {int n;static int sum=0;void setN(int n) {this.n=n;}int getSum() {for(int i=1;i<=n;i++)sum=sum+i;return sum;}}public class A {public static void main(String args[]) {B b1=new B(),b2=new B();b1.setN(3);b2.setN(5);int s1=b1.getSum();int s2=b2.getSum();System.out.println(s1+s2);}}4.请说出E类中【代码1】,【代码2】的输出结果n的输出结果. class A {double f(int x,double y) {return x+y;}int f(int x,int y) {。
Java程序设计-填空判断题
11、在方法体内定义的变量是___,其前面不能加___,且必须___。
答案:局部变量|public|初始化);14、switch语句中的表达式的数据类型可以是long。
答案:错误15、已知语句:int a =8,b=6; 则:表达式++a-b++的值为___。
答案: 3;16、已知:int a[ ]={2,4,6,8}; 则:表达式(a[0]+=a[1])+ ++a[2]值为___。
答案: 13;18、已知:boolean b1=true,b2; 则:表达式! b1 && b2 ||b2的值为___。
答案: N;20、执行int x, a = 2, b = 3, c = 4; x = ++a + b++ + c++; 结果是___。
答案: x=10,a=3,b=4,c=5;22、如果int x= 3,y=-10;则表达式y%x的结果为___。
答案: -1;26、在if-else嵌套时,如果没有强制配对,else则按缩格排版与if配对。
答案:错误27、以下程序段的输出结果是___。
int x = 5, y = 6, z = 4; if (x + y > z && x + z > y && z + y > x) System.out.println("三角形"); else System.out.println("不是三角形");答案:三角形;31、在循环结构中,用来结束当前循环,直接进入下一轮循环的语句是___。
答案: continue;32、do-while语句要要先判断循环条件,如果条件为真,则执行循环体。
答案:错误33、do….while语句构成的循环能用其他语句构成的循环来代替。
答案:错误34、while循环语句与do-while循环语句有何不同?答案:由于while语句先判断条件,再执行循环体;do-while语句是先执行一次循环体再进行条件判断,所以在循环条件已开始就不满足的情况下,do-while会至少执行一次,而while语句一次也不执行。
第7、8章 深入面向对象练习题
一、选择题(1)下列构造方法的调用方式中,正确的是()A.按照一般方法调用B.由用户直接调用C.只能通过new自动调用D.被系统调用(2)下列叙述中,正确的是( )A. 声明变量时必须指定一个类型B. Java认为变量number与Number相同C. Java中唯一的注释方式是"//"D. 源文件中public类可以有0或多个(3)下列叙述中,错误的是( )A. 父类不能替代子类B. 子类能够替代父类C. 子类继承父类D. 父类包含子类(4)下列关于继承的哪项叙述是正确的?A.在java中允许多重继承B.在java中一个类只能实现一个接口C.在java中一个类不能同时继承一个类和实现一个接口D.java的单一继承使代码更可靠(5)下列哪个修饰符可以使在一个类中定义的成员变量只能被同一包中的类访问?( )A.private B.无修饰符C.public D.protected(6)给出下列代码,如何使成员变量m 被方法fun()直接访问?class Test{ private intm;public static void fun(){ ... }}A.将private int m 改为protected int mB.将private int m 改为public int mC.将private int m 改为static int mD.将private int m 改为int m(7)下列关于内部类的说法不正确的是( )A.内部类的类名只能在定义它的类或程序段中或在表达式内部匿名使用B.内部类可以使用它所在类的静态成员变量和实例成员变量C.内部类不可以用abstract修饰符定义为抽象类D.内部类可作为其他类的成员,而且可访问它所在类的成员(8)在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可以不相同。
这种面向对象程序特性称为()。
看图写出图中人物正在做的事情
##五、计算题(共10分)
1. 3 + 4 * 2 / (1 - 0.5) = 11
2. 5 * (6 - 2) + 3 / 2 = 23.5
3. (8 / 2) + (4 * 3) - 5 = 11
4. 10 % 3 + 2 * (5 - 1) = 9
return name;
}
public int getAge() {
return age;
}
@Override
public String toString() {
return "Student{" +
"id='" + id + '\'' +
", name='" + name + '\'' +
", age=" + age +
java
import java.util.ArrayList;
import java.util.List;
public class StudentManagementSystem {
private List<Student> students;
public StudentManagementSystem() {
3. Member -表示图书馆的会员,包含会员ID、姓名、借阅记录等。
4. Loan -表示图书的借阅记录,包含借阅日期、应还日期、归还状态等。
java基础面经典试题(附答案)
基础知识部分:1. JDK是什么?JRE是什么?a) 答:JDK:java开发工具包。
JRE:java运行时环境。
2. 什么是java的平台无关性?a) 答:Java源文件被编译成字节码的形式,无论在什么系统环境下,只要有java虚拟机就能运行这个字节码文件。
也就是一处编写,处处运行。
这就是java的跨平台性。
3. 在一台电脑上配置java环境,path起什么作用?如何配置?a) 答:path的作用是在DOS环境下,能在任意位置使用JDK目录中b in文件夹中的可执行程序,来编译执行java程序。
b) 在环境变量中找到path变量,把bin文件夹的绝对路径加上即可。
4. 什么样的标识符是合法的?a) 由字母、数字、_和$组成,长度不限。
其中字母可以是大写或小写的英文字母,数字为0到9。
b) 标识符的第一个字符不能是数字。
c) 标识符区分大小写。
d) 标识符不能包含空格。
5. Java有几种基本数据类型?a) byte,short,int,long,float,double,char,boolean6. 什么是隐式类型转换?什么是显示类型转换?a) 当将占位数少的类型赋值给占位数多的类型时,Java自动使用隐式类型转换。
b) 当把在级别高的变量的值赋给级别底变量时,必须使用显示类型转换运算。
7. &&和&区别,||和|区别?a) &&和||是短路与,短路或,当左边的表达式能判断当前结果,则不判断右边的表达式。
b) 而& 和|则将两边的表达式都运算完毕后,再算结果。
8. break,continue区别?a) break结束所有循环,continue结束当次循环,进入下次循环。
9. 类的命名规则是什么?a) 如果类名使用拉丁字母,那么名字的首写字母使用大写字母。
b) 类名最好见名知意,当类名由几个单词复合而成时,每个单词的首写字母使用大写。
10. 类体的内容由两部分构成,哪两部分?a) 一部分是变量的定义,用来刻画属性。
java题
二、编写程序题1、按以下要求编写程序(1) 创建一个Rectangle类,添加width和height两个成员变量(2) 在Rectangle中添加两种方法分别计算矩形的周长和面积(3) 编程利用Rectangle输出一个矩形的周长和面积public class Rectangle{double width;double length;public Rectangle(){this.width=width;this.length=length;}public double zhouzhang(){return (width+length)*2;}public double mianji(){return width*length;}public static void main(String[] args){Rectangle R=new Rectangle();System.out.println("周长为:"+R.zhouzhang());System.out.println("面积为:"+R.mianji());}}运行结果:周长为:0.0面积为:0.02、按以下要求编写程序(1) 编写Animal接口,接口中声明run() 方法(2) 定义Bird类和Fish类实现Animal接口(3) 编写Bird类和Fish类的测试程序,并调用其中的run()方法3、设计类A和A的派生类B,要求:1)A有两个数据成员a和b(都为int型);B中继承了A中的a和b,又定义了自己的数据成员c(int型)。
2)为A添加含有两个参数的构造方法,对a和b初始化。
3)为B添加含有一个参数的构造方法,对c初始化。
4)完成主控方法,在主控方法中用B e1=new B5)创建对象,把a、b、c分别初始化成3、4、5,最后输出它们的和。
三、简答题1、简述Java中异常处理的机制?1. try catch(先小后大) finally2. 声明抛出异常:throws3. 手动抛出异常:throw4. 自定义异常a) extends Exception或者他的子类2、什么是继承?通过继承实现代码复用。
