当前位置:文档之家› Java课程10_面向对象基础

Java课程10_面向对象基础

实验一 Java面向对象基础 实验报告

实验一Java面向对象基础、数组实验报告 一、实验目的 1. 理解面向对象编程基本思想 2. 了解类的封装方法,以及如何创建类和对象 3. 掌握面向对象程序设计的方法,了解类的继承性和多态性的作用 4. 掌握Java 中的数组定义、引用 二、实验要求 编写程序时要注意体现面向对象思想,体会不同访问控制符的作用。 1. 编写一个Vehicle类和它的二个子类Bus类和Boat类。(要求:程序要有构造方法重载;要能体现类的多态性) 2. 定义一个由若干个整数组成的数组,要求输出该数组的平均值以及所有的奇数之和。 3. 随机生成30个0-9之间的数字,分别统计0-9这10个数字分别出现了多少次。 三、实验内容及结果 1. 编写一个Vehicle类和它的二个子类Bus类和Boat类。 public class Vehicle { private String color; public Vehicle() { this("black"); } public Vehicle(String color) { this.color = color; } public String toString() { return "this is a " + this.color + " vehicle"; } } class Bus extends Vehicle { private int passagerNumber; public Bus() { this(50, "black"); } public Bus(int number) { this(number, "black"); } public Bus(int number, String color) { super(color); this.passagerNumber = number; } public String toString() {

JAVA面向对象基础测试题

读书破万卷下笔如有神 JAVA面向对象基础测试题 提示:本题为第一阶段,JAVA面向对象基础部分练习题,包括对象,类,继承,封装,多态,接口,内部类等等,java核心基础,适合初学者对面向对象基础的知识进行测试,以便查漏补缺。 1. 程序执行的结果是:()。 01 public class Point{ 02 int y = 7; 03 public void step(int y) { 04 y += y; 05 System.out.println(y); 06 读书破万卷下笔如有神 } 07 public static void main(String[] args) {

08 Point p = new Point(); 09 p.step(10); 10 } 11 } A.14 B.20 C.10 D.17 正确答案:B解析: 2. 读书破万卷下笔如有神 程序的执行结果是:()。 01 public class Question { 02 private int num; 03 public static void main(String [] args){ 04

Question q = new Question(); 05 q.num=13; 06 update(q); 07 System.out.println(q.num); 08 } 读书破万卷下笔如有神 09 public static void update(Question q){ 10 q.num=9; 11 } 12 } A.13 B.9 C.0 D.4

正确答案:B解析: 3. 程序执行的结果是:()。 01 public class Answer { 读书破万卷下笔如有神 02 public static void main(String[] args) { 03 int score = 20; 04 Answer ans= new Answer(); 05 ans.add(score); 06 System.out.println( main:score = + score); 07 } 08 void add(int score) { 09 System.out.println( add:score= + score++); 10

JAVA面向对象基础测试题,继承,封装,多态等测试题

JAVA面向对象基础测试题 提示:本题为第一阶段,JAVA面向对象基础部分练习题,包括对象,类,继承,封装,多态,接口,内部类等等,java核心基础,适合初学者对面向对象基础的知识进行测试,以便查漏补缺。 1. 程序执行的结果是:()。 01 public class Point{ 02 int y = 7; 03 public void step(int y) { 04 y += y; 05 System.out.println(y); 06 } 07 public static void main(String[] args) { 08

Point p = new Point(); 09 p.step(10); 10 } 11 } A.14 B.20 C.10 D.17 正确答案:B解析: 2. 程序的执行结果是:()。 01 public class Question { 02 private int num; 03 public static void main(String [] args){ 04 Question q = new Question();

05 q.num=13; 06 update(q); 07 System.out.println(q.num); 08 } 09 public static void update(Question q){ 10 q.num=9; 11 } 12 } A.13 B.9 C.0 D.4 正确答案:B解析: 3.

程序执行的结果是:()。 01 public class Answer { 02 public static void main(String[] args) { 03 int score = 20; 04 Answer ans= new Answer(); 05 ans.add(score); 06 System.out.println(" main:score = " + score); 07 } 08 void add(int score) { 09 System.out.println(" add:score=" + score++); 10 } 11

Java面向对象习题

选择题 1、下列关于变量的叙述哪个是错的?() A. 实例变量是类的成员变量。 B. 在方法中定义的局部变量在该方法被执行时创建。 C. 实例变量用关键字static声明。 D. 局部变量在使用前必须被初始化。 2、在Java语言中,下列哪个包是编译器自动导入的?() A. java.applet B. https://www.doczj.com/doc/5917667921.html,ng C. java.io D. java.awt 3、当类的成员未用访问权限修饰符时,Java认为此成员的访问权限为()。 A. private B. protected C.friendly D.public 4、下面哪个关键字不是用来控制对类成员的访问的?() A. public B. protected C. default D. private 5、下面哪一个特性不是面向对象编程主要体现的()。 A. 封装性 B. 继承 C. 多态 D. 类 6、不允许作为类及类成员的访问控制符的是()。 A. public B. private C. static D. protected 7、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB 作为前缀就可以调用它,该方法头的形式为()。 A、static void method( ) B、public void method( ) C、final void method( ) D、abstract void method( ) 8、可以在下面代码段point x处写入的是?() //point x public class Interesting{ //do something } A. String str; B. static int PI=3.14; C. public class MyClass{//do other thing…} D. import java.awt.*; 9、下列关于变量的叙述哪个是错的?() A、实例变量是类的成员变量。 B、在方法中定义的局部变量在该方法被执行时创建。 C、实例变量用关键字static声明。 D、局部变量在使用前必须被初始化。 10、下列哪个类声明是正确的?() A、abstract final class HI{} B、abstract private move(){} C、protected private number; D、public abstract class Car{}

2Java第二单元练习题-面向对象程序设计基础资料

2面向对象程序设计基础 2.1单项选择题 1.下面关于类的继承性的描述中,错误的是()。 A.继承是在已有的基础上生成新类的一种方法 B.Java语言要求一个子类只有一个父类 C.父类中成员的访问权限在子类中将被改变 D.子类继承父类的所有成员,但不包括私有的成员方法 2.在成员方法的访问控制修饰符中,规定访问权限包含该类自身,同包的其他类和其他包的该类子类的修饰符是()。 A.默认B.protected C.private D.public 3.在类的修饰符中,规定只能被同一包类所使用的修饰符是()。 A.public B.默认C.final D.abstract 4.下列关于子类继承父类的成员描述中,错误的是()。 A.当子类中出现成员方法头与父类方法头相同的方法时,子类成员方法覆盖父类中的成员方法。 B.方法重载是编译时处理的,而方法覆盖是在运行时处理的。 C.子类中继承父类中的所有成员都可以访问。 D.子类中定义有与父类同名变量时,在子类继承父类的操作中,使用继承父类的变量;子类执行自己的操作中,使用自己定义的变量。 5.下列关于继承性的描述中,错误的是()。 A.一个类可以同时生成多个子类B.子类继承了父类中除私有的成员以外的其他成员C.Java支持单重继承和多重继承D.Java通过接口可使子类使用多个父类的成员 6.下列关于抽象类的描述中,错误的是()。 A.抽象类是用修饰符abstract说明的 B.抽象类是不可以定义对象的 C.抽象类是不可以有构造方法的D.抽象类通常要有它的子类 7.下列关于构造方法的叙述中,错误的是()。 A.构造方法名与类名必须相同B.构造方法没有返回值,且不用void声明 C.构造方法只能通过new自动调用D.构造方法不可以重载,但可以继承 8.下面叙述中,错误的是()。 A.子类继承父类B.子类能替代父类C.父类包含子类D.父类不能替代子类

Java面向对象_练习题

Java基础面向对象习题1: 1.面向对象的软件开发有哪些优点? 使用面向对象思想进行开发有以下优点: 1、易维护 采用面向对象思想设计的结构,可读性高,由于继承的存在,即使改变需求,那么维护也只是在局部模块,所以维护起来是非常方便和较低成本的。 2、质量高 在设计时,可重用现有的,在以前的项目的领域中已被测试过的类使系统满足业务需求并具有较高的质量。 3、效率高 在软件开发时,根据设计的需要对现实世界的事物进行抽象,产生类。使用这样的方法解决问题,接近于日常生活和自然的思考方式,势必提高软件开发的效率和质量。 4、易扩展 由于继承、封装、多态的特性,自然设计出高内聚、低耦合的系统结构,使得系统更灵活、更容易扩展,而且成本较低。 面向对象的软件开发具有以下优点: ●把软件系统看成是各种对象的集合,这更接近人类的自然思维方式。 ●软件需求的变动往往是功能的变动,而功能的执行者——对象一般不会有大的变 化。这使得按照对象设计出来的系统结构比较稳定。 ●对象包括属性(数据)和行为(方法),对象把数据以及方法的具体实现方式一起封装起 来,这使得方法和与之相关的数据不再分离,提高了每个子系统的相对独立性,从而提高了软件的可维护性。 ●支持封装、抽象、继承和多态,提高了软件的可重用性、可维护性和可扩展性 2.在软件系统中,为什么说一个孤立的不对外提供任何服务的对象是没有意义的? 开发软件系统的目的,就是为了让它提供特定服务。从使用者的角度出发,整个软件系统就是一个服务提供者。大的系统由多个子系统组合而成。在系统内部,每个子系统(对象或对象的组合)也都是服务提供者,它们为其它子系统或者所属的大系统提供服务,各个系统之间通过发送消息来互相获得服务。因此,一个孤立的不对外提供任何服务的系统是没有任何意义的 3.列举一些现实生活中的例子,来说明什么是依赖关系、什么是聚和关系,以及什么 是关联关系。 依赖关系:人依赖食物;电视机依赖电;理发师依赖剪刀和吹风机;鱼依赖水聚集关系:电脑由显示器、主机和键盘等聚集而成; 关联关系:公司和员工;银行和客户;老公和老婆 4.列举一些现实生活中的例子,来说明什么是封装,什么是接口。 封装:电脑主机的组件被封装在机箱内;电视机的内部构件也被封装在大壳子内 接口:电脑的键盘上的按键是电脑向人提供的接口;电脑上的USB插口是向移动硬盘提供的接口;电脑上的光盘驱动器是向光盘提供的接口。 5.抽象的最主要的特征是什么? 抽象是指从特定角度出发,从已经存在的一些事物中抽取我们所关注的特性,形成一个新的事物的思维过程。抽象是一种由具体到抽象、由复杂到简洁的思维方式。

Java面向对象基础试题

一、【必做题】 Ⅰ.选择题 1、列选项中哪个是类 { }的默认构造方法?(知识点:构造器) A. (); B. (); C. (); D. (); E. (); 2、给定下列代码的执行结果是?(知识点:构造器) A { A() { (“ A”); } ([] ) { A(); } } A. A B. 在第2行处抛出异常 C. 编译错误 D. 在第6行处抛出异常 E. 代码执行后没有输出 3、给定以下代码:(知识点:构造器)

1. { 2. ( x, y, z) { 3. } 4. } 下列选项中,哪些可以在类中定义成重载的构造方法: A. ( ) { } B. ( ) { } C. ( z, y, x) { } D. ( x, y, z) { } E. ( x, y, z) { } 4、以下代码的执行结果是?(知识点:使用) A. 编译失败 B. 编译成功,输出“0” C. 编译成功,输出“1” D. 编译成功,输出“2” 5、以下代码的执行结果是?(知识点:类的成员及方法中的变量)

A. 代码编译成功,并且打印“” B. 代码编译成功,并且打印“” C. 代码编译失败,因为s为被初始化 D.代码编译失败,因为s不可以被引用 E. 代码编译成功,但是运行时抛出 6、给定以下代码:(知识点:中回收机制) 12. () { 13. A a = A(); 14. B b = B(); 15. (b); 16. b = ; 17. a = ; 18. (“ ”); } 对于在第14行创建的对象b,系统什么时候会对它进行垃圾回收? A. 在第16行之后 B. 在第17行之后 C. 在第18行之后(当函数执行完成后) D. 无法确

java面向对象编程类的封装接口和基本类库练习题

面向对象编程基本知识练习 一、判断题 1.不需要定义类,就能创建对象。() 2.构造方法用于给类的private 实例变量赋值。() 3.对象一经声明就可以立即使用。() 4.在定义变量和方法时,必须清楚地在其面前标上访问权限修饰符。() 5.Java 程序中的参数传递都是把参数值传递给方法定义中的参数。() 6.在类定义中,成员访问权限修饰符不能多次出现。() 7.new 操作符动态地为对象按其指定的类型分配内存,并返回该类型的一个引用。() 8.类的方法通常设为public,而类的实例变量一般也设为public。() 9.构造方法在创建对象时被调用。() 10.通过点运算符与类对象的引用相连,可以访问此类的成员。() 11.声明为protected 的类成员只能被此类中的方法访问。() 12.同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间。() 13.类的成员变量可以放在类体的任意位置。() 14.声明为protected 的类成员可以被此类作用域中的任何对象访问。() 15.没有返回值的方法可以用void 来表示,也可以不加。() 二、选择题 1. 下面对对象概念描述错误的是:( ) A 操作是对象的动态属性 B 任何对象都必须有继承性 C 对象间的通讯靠消息传递 D 对象是属性和方法的封装体 2.编译并运行下面的程序,运行结果为:( ) public class A { public static void main(String[] args) { A a=new A(); a.method(8); } void method(int i) { System.out.println(“int:“+i); } void method(long i) { System.out.println(“long:“+i); } } A 程序可以编译运行,输出结果为int:8 B 程序可以编译运行,输出结果为long:8

java面向对象基础练习答案.docx

Java语言面向对象基础 一、填空题 1.类是一组具有相同(属性)和(行为)的对象的抽象。(实例)是由某个特定的类所描述的一个个具体的对象。 2.(接口)只描述系统所提供的服务,而不包含服务的实现细节。 3.构造方法的方法名与(类)相同,若类中没有定义任何的构造方法,则运行时系统会口动为该类牛成一个(无参构造)方法。 4.(构造方法)是一个特殊的方法,用于创建一个类的实例。 5.对象拷贝有(对象的引用)、()和()三种。 二、简答题 1.为什么耍对类进行封装?封装的原则是什么? ■Java中通过将数据封装、声明为私有的(private),再提供一个或多个公开的(publi c)方法实现对该属性的操作,以实现下述目的。 □隐藏一个类的实现细节 □防止对封装数据的未经授权的访问。使用者只能通过事先定制好的方法來访问数据,可以方便地加入控制逻辑,限制对属性的不合理操作。 □有利于保证数据的完整性 □便于修改,增强代码的可维护性。 尽力让封装的每个类里面的属性和方法独立,方便以后操作,减少耦合性就好了。 2.什么是对象?什么是类?二者有何关系? 类是具有相同数据结构(属性)和相同操作功能(行为)对彖的集合。对彖就是符合某种类所产生的一个实例。对彖与类的关系是: 对象的共性抽象为类,类的实例化就是对象。 对象的声明: 类名对象名二new类名(); 对象的调用: 访问属性:对象名?属性名; 访问方法:对象名?方法名(); 类是对现实生活屮的一类人或者一类事物的高度抽象,抽取出该类事物共有的属性和方法 由类生成的貝?体的个体是对彖 3.Java中类定义的一般格式是什么?定义类的修饰符有哪些?各自的特点是什么? Public class 1 .public default protected private 使用对象:类、接口、成员 介绍:无论它所处在的包定义在哪,该类(接口、成员)都是可访问的 2.private 使用对象:成员 介绍:成员只可以在定义它的类中被访问

java面向对象程序设计课后习题答案 联祥义

习题1 1.James Gosling 2. (1)使用一个文本编辑器编写源文件。 (2)使用Java编译器(javac.exe)编译Java源程序,得到字节码文件。 (3)使用J ava解释器(java.exe)运行Java程序 3.Java的源文件是由若干个书写形式互相独立的类组成的。 应用程序中可以没有public类,若有的话至多可以有一个public类。 4.系统环境path D\jdk\bin; 系统环境classpath D\jdk\jre\lib\rt.jar;.; 5. B 6.Java源文件的扩展名是.java。Java字节码的扩展名是.class。 7.D 8.(1)Speak.java (2)生成两个字节码文件,这些字节码文件的名字Speak.class 和Xiti8.class (3)java Xiti8 (4)执行java Speak的错误提示 Exception in thread "main" https://www.doczj.com/doc/5917667921.html,ng.NoSuchMethodError: main 执行java xiti8得到的错误提示 Exception in thread "main" https://www.doczj.com/doc/5917667921.html,ng.NoClassDefFoundError: xiti8 (wrong name: Xiti8) 执行java Xiti8.class得到的错误提示 Exception in thread "main" https://www.doczj.com/doc/5917667921.html,ng.NoClassDefFoundError: Xiti8/class 执行java Xiti8得到的输出结果 I'm glad to meet you 习题2 1. D 2.【代码1】【代码2】错误//【代码3】更正为float z=6.89F; 3.float型常量后面必须要有后缀“f”或“F”。 对于double常量,后面可以有后缀“d”或“D”,但允许省略该后缀。4.public class Xiti4{ public static void main (String args[ ]){ char ch1='你',ch2='我',ch3='他'; System.out.println("\""+ch1+"\"的位置:"+(int)ch1); System.out.println("\""+ch2+"\"的位置:"+(int)ch2); System.out.println("\""+ch3+"\"的位置:"+(int)ch3); } }

java面向对象程序设计基础知识总结

1、含有main()方法的类称为主类,一个.java文件中可以有多个类,但只能有一个主类。 2 、转义字符:对于‘ 和\ ,需在前面加上\,即用char a = '\'’,b='\\'表示。\n表示回车换行;\t表示水平制表;\b表示退格;\v表示水平制表;\r表示回车;\a表示警铃 3 、标识符:Java程序中自定义的类名、方法名、参数都是标识符,Java语言中规定标识符由字母(区分大小写)、数字、下划线、$自由组合而成,但不能以数字开头,标识符长度不限。 4 、基本数据类型:分4大类——整数(byte:1字节/int:4字节/short:2字节/long:8字节)、浮点数(float:4字节/double:8字节)、字符型(char:2字节)、布尔型(boolean:1字节)。 5 、整形变量注意:16进制数以0x开头,8进制数以0开头。 6 、浮点型变量注意:如果数字未加任何字母,则默认为double类型,赋值时须注意数据类型匹配问题。 7 、数组的定义:char array1[];和char [ ] array2;都可以。 8 、双目运算符:+ - * / 对于整形和浮点数有效(float x = 1f/3f;的运行结果是x=0.33333334),但%只对整形运算。 9 、逻辑运算符:逻辑运算是对布尔型变量进行运算,结果也是布尔型。^表示异或运算(a^b表示a和b真假不同时,值为真)。&&和||是短路的(对于a&&b,如果a为假,则不再计算b的值),&和|是非短路的,a和b的值都要计算。 10 、位运算符:&位与、|位或、~位反、^位异或、<<左移、>>右

JAVA面向对象基础测试题继承封装多态等测试题

J A V A面向对象基础测试题提示:本题为第一阶段,JAVA面向对象基础部分练习题,包括对象,类,继承,封装,多态,接口,内部类等等,java核心基础,适合初学者对面向对象基础的知识进行测试,以便查漏补缺。 1. 程序执行的结果是:()。 01 public class Point{ 02 int y = 7; 03 public void step(int y) { 04 y += y; 05 06 } 07

public static void main(String[] args) { 08 Point p = new Point(); 09 p.step(10); 10 } 11 } A.14 B.20 C.10 D.17 正确答案:B解析: 2. 程序的执行结果是:()。 01

public class Question { 02 private int num; 03 public static void main(String [] args){ 04 Question q = new Question(); 05 q.num=13; 06 update(q); 07 08 } 09 public static void update(Question q){ 10

q.num=9; 11 } 12 } A.13 B.9 C.0 D.4 正确答案:B解析: 3. 程序执行的结果是:()。 01 public class Answer { 02 public static void main(String[] args) { 03

Java面向对象基础作业

面对对象 一.选择 1以下叙述正确的是( ) A.构造方法必须是public方法 B.main方法必须是public方法 C.Java应用程序的文件名可以是任意的 D.构造方法应该声明为void类型 2构造方法何时被调用?( ) A.创建对象时 B.类定义时 C.使用对象的方法时 D.使用对象的属性时 3下列关于构造方法描述错误的是( )。 A.Java语言规定构造方法名与类名必须相同 B.Java语言规定构造方法没有返回值,但不用void声明 4.Java语言规定构造方法不可以重载 D.Java语言规定构造方法只能通过new自动调用 5.关于被私有访问控制符private修饰的成员变量,以下说法正确的是( )。 A.可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类 B.可以被两种类访问和引用:该类本身、该类的所有子类 C.只能被该类自身所访问和修改 D.只能被同一个包中的类访问 6.类与对象的关系是( )。 A.类是对象的抽象 B.类是对象的具体实例 C.对象是类的抽象 D.对象是类的子类 7.在类的定义中可以有两个同名函数,这种现象称为函数()。 A.封装 B.继承 C.覆盖 D.重载 8下面哪个修饰符修饰的方法只能被本类中的其他方法使用( )。 A.protected B.private C.public D.static 9.分析以下程序的运行结果,得到的结论是。( ) public class A{ String s;public static void main(String args[]) { A m=new A(); m.go(); } void A() { s="constructor";} void g { System.out.println(s);} }

java面向对象考题和答案

j a v a面向对象考题和答 案 This model paper was revised by the Standardization Office on December 10, 2020

1.下面代码的输出结果是 A.300 300 B.100 100 C.300 100 D.100 300 2.程序执行的结果是:::x =" + x++); }} A.doStuff:x =7 B. main: x = 7 B.doStuff:x =7 main: x = 6 C.doStuff:x =6 main: x = 7 D.doStuff:x =6 main: x = 6 3.下列关于JVM的内存结构描述正确的是: A.类的各种信息在方法区中保存 B.堆用于存放程序运行过程当中所有的局部变量 C.栈用于存储使用new关键字创建的对象 D.数组属于JVM的内存结构 4.下列代码的输出结果是: A.c B.i C.d D.s 5.程序执行的结果是: A.null B.Tom C.Jack D." " 6.关于构造方法,下列说法错误的是: A.构造方法不可以进行方法重写 B.构造方法用来实例化一个新的对象 C.构造方法具有和类名相同的名称 D.构造方法不返回任何数据类型 7.关于 Java 中继承的特点,下列说法正确的是: A.使类的定义复杂化 B.Java 只支持单继承,不可多继承,但可以通过实现接口来达到多继承的目的 C.子类继承父类的所有成员变量和方法,包括父类的构造方法 D.不可以多层继承,即一个类不可以继承另一个类的子类 8.下列代码运行的结果是: A.Value: 3

Java面向对象基础的知识点小结

Java面向对象基础的知识点小结 ●面向对象的三大特征 ?封装 ◆为什么要封装?? ●不能让没有权限的模块(类,其他的函数)去修改抽象的类的属性 ◆如何封装?? ●将类的实现细节隐藏 ●将类的属性添加private关键字实现属性的私有化 ◆当一个类实体的Setter方法没有的时候,在其他的地方不能为他通过this.set(xx) 赋值成功 ◆构造函数 ●目的:实例化类的对象(定义对象,并给对象实例化初始值) ●为什么要构造函数?? ?一个类属性过多,必然在封装概念会有多个setXXX方法,在实例化 对象时,可能会忘记某些setXXX方法,从而会导致该对象属性的缺 失。 ?某些不需要改变值的属性就不要给他设计setter方法,比如利率,这 样就不会不小心改错了 ●如何定义构造函数?? ?与类名同名 ?不带返回值 ?构造函数可以被重载 ◆重载 ●在一个类中,同名的方法出现多次,而方法的参数不一样(必须),实现 细节可能不一样(方法体可能不一样) ?继承 ◆有两拨类,有一个类是其他类的所有共性(其他类都具有共同属性和行为)描 述,这个类是其他这些类的父类。 ◆其他的类是这个类的子类。子类和父类之间存在一个IS-A的关系 ◆父类更通用,子类更具体 ◆如何实现继承? ●子类通过extends关键字继承父类,这样子类就继承父类的所有的属性和 行为,且子类可以有自身的新特性和行为 ◆重写 ●发生子类和父类的继承关系之间 ●子类对父类的某些方法重新实现(子类将父类的方法重新给予代码实现, 方法体不能变) (区别:重载 在一个类中,同名的方法出现多次,而方法的参数不一样(必须),实现细节可能不一样(方法体可能不一样)

相关主题
文本预览
相关文档 最新文档