类的封装性练习题

类的封装性练习题
1、设计一个Dog类,类中有名字、颜色、年龄三个
属性,将属性设置为私有成员变量,定义构造方法来初始化类的这些属性,构造方法包括以下几种:⑴三个参数的构造方法、⑵两个参数的构造方法、⑶无参的构造方法和⑷拷贝构造方法;定义成员方法输出Dog信息,定义成员方法输出
Dog的叫声,编写测试程序使用Dog类,将测试代码写在Dog类以外的其他类中。

2、设计一个矩形Rectangle类,类中有长度和宽度两
个属性,定义构造方法(至少两个)来初始化类的这些属性,定义成员方法计算矩形的周长,定义成员方法计算矩形的面积,编写测试代码使用Rectangle类中的成员,输出一个矩形的周长和面积。

合集下载

面向对象练习答案

面向对象练习答案
b.子类必须通过this关键字调用父类有参数的构造方法。
c.如果子类的构造方法没有通过super调用父类构造方法,那么子类会先调用父类不含参数的构造方法,再调用子类自己的构造方法。
d.创建子类对象时,先调用子类自己的构造方法,然后调用父类的构造方法。
14.定义了类B和类C如下,并将其保存为B.java,编译B.java文件,得到的结果是: (C)
}
}
a)编译成功,结果是显示:“学生人数:2”。
b)编译成功,结果是显示:“学生人数:1”。
c)编译不成功,因为count是static,不能给其他类调用。
d)编译不成功,因为在类student中,name没有初始化。
10.编译和运行下面的程序结果是:(a)
class Calculate{
final double PI=3.1415926;
public class Cnt{
int a=0;
public static void setNum(int y){
a=y;
}
public static int getNum(){
return a;
}
public static void main(String args[]){
Cnt cn=new Cnt();
double area=___a.area(r)__;//调用area方法
System.out.println(“圆面积为:”+area);
}
}
5.已经创建了类Student,下面调用它getNum()方法正确的是:(D)
class Student{
static int student_no=0;
public static int getNum(){

javase练习题

javase练习题

javase练习题一、基础知识篇1. Java基本数据类型有哪些?分别写出它们的默认值。

2. 什么是封装?简述封装的优点。

3. 请写出Java中的四种访问修饰符,并说明它们的访问权限。

4. 什么是构造方法?它与普通方法的区别是什么?5. 在Java中,如何实现方法的重载和重写?二、面向对象篇2. 如何实现一个简单的Java类,包含两个属性和一个方法?3. 简述Java中的继承机制及其作用。

4. 什么是接口?与抽象类有什么区别?5. 请举例说明Java中的多态性。

三、集合框架篇1. Java集合框架中常用的集合类有哪些?2. 请简述ArrayList和LinkedList的区别。

3. 什么是HashMap?它的工作原理是什么?4. 请解释HashSet和TreeSet的区别。

5. 如何遍历一个List集合?四、异常处理篇1. 什么是异常?Java中的异常分为哪几类?2. 请举例说明trycatchfinally语句的使用方法。

3. 什么是自定义异常?如何创建和使用自定义异常?4. 请简述Java异常处理机制的作用。

int a = 10;int b = 0;int result = a / b;五、IO流篇1. 请简述Java IO流的分类。

2. 如何实现文件复制功能?3. 请解释字节流和字符流的区别。

4. 什么是序列化和反序列化?如何实现?5. 请举例说明Java中的文件操作。

六、多线程篇1. 什么是线程?线程和进程有什么区别?2. 请简述线程的生命周期。

3. 如何创建一个线程?有哪几种方式?4. 什么是线程同步?为什么需要线程同步?5. 请解释线程池的概念及其作用。

七、网络编程篇1. 请简述TCP和UDP协议的区别。

2. 如何实现一个简单的Socket通信?3. 什么是URL?如何解析一个URL?4. 请简述HTTP协议的工作原理。

5. 如何实现一个简单的HTTP服务器?八、Java新特性篇1. 请列举Java 8中的几个新特性。

面向对象技术(本)阶段练习四资料

面向对象技术(本)阶段练习四资料

《面向对象技术(本)》课程第四阶段练习题、填充题1超类的private成员不能被子类继承。

2.在声明一个类变量时,前面必须要加上static修饰符。

3. import java.util.*;语句可导入Java的实用包中所有的类。

4.方法的覆盖是后期绑定,方法的重载是前期绑定。

5.写出一个表达式:输出角度300的余弦值Math.cos(30*3.14/I80。

二、选择题旦1.找出有关类的正确说法。

a. 类具有封装性,所以类的数据是不能被访问的。

b. 类具有封装性,但可以通过类的公共接口访问类中的数据。

c. 声明一个类时,必须用Public修饰符。

d. 每个类中,必须有main方法,否则程序无法运行。

e.A 2.将类的成员的访问权限设置为默认的,则该成员能被a. 同一包中的类访问b. 其它包中的类访问c. 所有的类访问d. 所有的类的子类访问C 3.下面哪一种是正确的方法重栽a. int fun (i nt afloat b{} float fun (i nt a,float b{}b. float fun (i nt a,float b{}float fun (i nt x,float y{}c. float fun( float a{}float fun (float a,float b{}d. flaot fun 1(i nt a,float b{}float fun 2(i nt a,float b{}D 4.下面关于继承的说法那个是正确的a. 超类的对象就是子类的对象。

b. 一个类可以有几个超类。

c. 一个类只能有一个子类。

d. 一个类只能有一个超类。

C 5.下面关于多态性的说法那个是正确的a. 一个类中,不能有同名的方法。

b. 子类中不能有和父类中同名的方法。

c. 子类中可以有和父类中同名且参数相同的方法。

d. 多态性就是方法的名字可以一样,但返回的类型必须不一样。

三、简答题1. 什么是类,什么是对象?在面向对象的程序设计语言中,类是一种特殊属性类型,类可以看作具有共同属性和行为的事物的抽象。

《程序设计基础》练习题

《程序设计基础》练习题
《程序悉概念为主)
1.在C++的结构化程序设计框架中,程序的基本组成单元是___。
A.函数B.类
C.关系D.数据结构
2.下列特性中,C与C++共有的是_____。
A.继承B.封装C.多态性D.函数定义不能嵌套
3.面向对象程序设计思想的主要特征中,不包含____。
C.整型常量或整型表达式D.任何类型的表达式
28.若有以下说明和语句,且0<i<10,则对数组元素的错误引用是____。
int a[ ]={1,2,3,4,5,6,7,8,9,0}, *p,i;
p=a;
A.*(a+i) B.a[p-a] C.p+i D.*(&a[i])
29.若有以下定义和语句,且0<i<10,则对数组元素地址的正确表示是__。
6.下列哪个是C++语言的有效标识符?____。
A._No1 B.No.1 C.12345 D.int
7.在C++语言中,所有函数说明都必须指明返回值类型,没有返回值的函数应说明为____类型的函数。
A.int B.char C.float D.void
8.下列字符常量的写法中,错误的是____。
A.’\105’B.’*’C.’’’’D.’\a’
A.如果类A是类B的友元,那么类B也是类A的友元
B.如果函数fun( )被说明为类A的友元,那么在func( )中可以访问类A的私有成员
C.友元关系不能被继承
D.如果类A是类B的友元,那么类A的所有成员函数都是类B的友元
40.下面关于类MyClass的定义,对定义中的各语句描述正确的是____。
Class MyClass

第7、8章 深入面向对象练习题

第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中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可以不相同。

这种面向对象程序特性称为()。

类的封装与继承习题(题)

类的封装与继承习题(题)

1.以下关于继承的叙述正确的是( C )。

A、在Java中类只允许单一继承B、在Java中一个类只能实现一个接口C、在Java中一个类不能同时继承一个类和实现一个接口D、在Java中接口只允许单一继承2.有继承关系时用到的关键字是(A )。

( 2 分)A:extendB:extendsC:implementsD:implement3:Java变量中,以下不属于复合类型的数据类型是( D)。

( 2 分)A:类B:字符型C:数组型D:接口4:java中定义数组名为abc,下面(B )可以得到数组元素的个数。

( 2 分)A:abc.length( )B:abc.lengthC:len(abc)D:ubound(abc)5:下列说法正确的是(A )。

( 2 分)A:编译后的Java源程序根据文件中定义的类和接口的个数产生相应个数的.class 字节码文件。

B:Java语言的源文件中不是任何地方都可以加注释的。

C:一个文件中可以有多个访问权限为public的类。

D:含有main()方法的类可以为public的类,也可以为其他类。

6:在调用构造函数时(C )( 2 分)A:子类可以不加定义就使用父类的所有构造函数B:不管类中是否定义了何种构造函数,创建对象时都可以使用默认构造函数C:先调用父类的构造函数D:先调用形参多的构造函数7:Java与C/C++比较说法错误的是(D)。

( 2 分)A:Java不提供goto语句,所以也就没指定goto作为关键字。

B:Java没有指针。

C:Java没有联合和结构D:Java只有单继承没有多重继承。

8:若需要定义一个类域或类方法,应使用( B)修饰符。

( 2 分)A:staticB:packageC:privateD:public9:下列说法( C)是正确的。

( 2 分)A:程序执行到break语句是一定会结束所有的循环B:程序执行到continue语句时会结束当前循环C:break语句和continue语句都可以和标签协同使用D:continue语句和break语句的作用相同10:以下说法正确的是(D )。

java面向对象练习题

java面向对象练习题# Java面向对象练习题一、选择题1. 在Java中,以下哪个关键字用于定义类的访问权限为“仅包内可见”?- A. public- B. private- C. protected- D. 默认(不写访问修饰符)2. 以下哪个是Java中的构造方法?- A. 与类名相同,没有返回类型的方法- B. 与类名不同,没有返回类型的方法- C. 与类名相同,有返回类型的方法- D. 与类名不同,有返回类型的方法3. 在Java中,哪个关键字用于实现类的继承?- A. extends- B. implements- C. override- D. abstract4. 以下哪个是Java中类的成员变量?- A. 局部变量- B. 实例变量- C. 静态变量- D. 方法参数5. 以下哪个是Java中的多态性?- A. 接口- B. 继承- C. 封装- D. 抽象类二、简答题1. 解释Java中的封装性,并给出一个封装的类的例子。

2. 描述Java中接口和抽象类的区别。

3. 什么是Java中的继承?请举例说明如何使用继承。

三、编程题1. 创建一个名为`Person`的类,包含姓名(name)、年龄(age)和性别(gender)三个属性。

为每个属性提供getter和setter方法。

2. 编写一个名为`Student`的类,它继承自`Person`类,并添加一个名为`studentID`的属性。

为`studentID`提供getter和setter方法,并重写`toString`方法以返回学生的详细信息。

3. 创建一个接口`Movable`,包含一个方法`move()`。

然后创建一个名为`Car`的类实现该接口,并提供`move`方法的具体实现。

四、综合应用题1. 设计一个简单的银行账户系统,包含以下类:- `Account`:基本账户类,包含账户ID、账户余额和存款(deposit)与取款(withdraw)方法。

python面向对象练习题(打印版)

python面向对象练习题(打印版)# Python面向对象编程练习题面向对象编程(OOP)是Python中的核心概念之一。

通过以下练习题,你可以加深对Python中类和对象的理解。

## 练习一:定义一个类1. 定义一个名为`Person`的类,包含以下属性:- `name`:姓名- `age`:年龄2. 为`Person`类添加一个初始化方法`__init__`,用于设置姓名和年龄。

3. 添加一个方法`greet`,用于打印问候语。

```pythonclass Person:def __init__(self, name, age): = nameself.age = agedef greet(self):print(f"Hello, my name is {} and I am{self.age} years old.")```## 练习二:继承和多态1. 定义一个`Student`类,继承自`Person`类。

2. 添加一个属性`student_id`来表示学生的学号。

3. 重写`greet`方法,使其打印出学生特有的问候语。

```pythonclass Student(Person):def __init__(self, name, age, student_id):super().__init__(name, age)self.student_id = student_iddef greet(self):print(f"Hello, I am {}, a student of age {self.age} with ID {self.student_id}.")```## 练习三:封装1. 创建一个名为`Car`的类。

2. 包含属性:`make`(制造商),`model`(型号),`year`(年份)。

3. 为这些属性提供私有化处理,即在属性名前加上双下划线`__`。

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:8B 程序可以编译运行,输出结果为long:8C 程序有编译错误,因为两个method()方法必须定义为静态(static)的D 程序可以编译运行,但没有输出3.下面关于类的说法不正确的是:()A 类是Java 语言中的一种复合数据类型B 类中不包含数据变量和方法C 类是对所有具有一定共性的对象的抽象D Java 语言的类只支持单继承4.能作为类及其成员的修饰符是:()A interfaceB classC protectedD public5.设x、y 均为已定义的类名,下列声明对象x1 的语句不可能正确的是:()A public x xl=new y();B public y xl=new x();C x xl=new x();D x xl=x();6.面向对象程序设计技术的特点是:()A 可重用性B 可维护性C 表示方法的一致性D 可重用性、可维护性、表示方法的一致性7.下列方法定义中,方法头不正确的是:()A public static x(double a){…}B public static int x(double y){…}C void x(double d)D public int x(){…}8.设已声明了一个类A 的两个对象al、a2,为了初始化a1 和a2,下面语句正确的是:()A al=new(); a2=new();B al=A new(); a2=A new();C al,a2=new A();D al=new A(); a2=new A();9.构造方法何时被调用?()A 类定义时B 使用对象的变量时C 调用对象方法时D 创建对象时10.下列哪个类声明是正确的?()A public abstract class Car{…}B abstract private move(){…}C protected private number;D abstra ct final class Hl{…}11.下列不属于面向对象程序设计的基本特征的是:()B 封装C 继承D 静态12.请看下面的程序段class Person {String name,department;int age;public Person(String n) { name = n; }public Person(String n,int a) { name = n; age = a; }public Person(String n,String d,int a) {//doing the same as two arguments version of constructer//including assignment name=n,age=a}}下面那一选项可以添加到“//doing the same……”处:()A Person(n,a)B this(Person(n,a))C this(n,a)D this(name.age)13.()是一个特殊的方法,用于对类的实例变量进行初始化。

C++程序设计练习题与答案

C++程序设计练习题一、填空题1.对象的三大基本特性分别为多态性、( )、封装性。

2.赋值运算符应重载为( )函数。

3.用( )声明的基类称为虚基类。

4.用( )声明的函数称为虚函数。

5.派生类对基类继承控制访问有三种。

派生类可以定义其基类中不具备的( )。

6.静态成员是对象的成员,( )函数不是类的成员。

7.在函数体之前加( )关键字可以防止覆盖函数改变数据成员的值。

8.一个const对象只能访问( )成员函数。

9.使用友元函数是为了提高程序效率,且节约了( )开销。

10.类名为“ClassName”的类,其拷贝构造函数的原型说明是( )。

11.由关键字private、public和protected限定成员的访问权限分别是( )、( )和( )。

缺省关键字时成员的访问权限为( )。

12.如果想要公共基类在派生类中只有一个拷贝,就要将公共的基类说明为( );如果虚基类没有默认构造函数,就必须在每一个派生类的构造函数中都要调用虚基类的( )函数。

13.静态成员函数是使用关键字( )说明的成员函数。

14.一个函数的原型声明为“void FunName(int=0, double=0, char='x');”,则调用FunName函数的方法共有( )种。

15.编译时多态性是通过( )实现的;运行时多态性是通过( )实现的。

16.C++通过( )实现编译时多态性,通过( )实现运行时多态性。

17.在C++中,声明类的关键字是( )。

18.声明C++模板的关键字是( )。

19.调用函数原型声明为“void FunName(short, int=0, float=;”的方法有( )种。

20.处理C++异常的方法:采用( )结构。

21.用关键字( )、( )和( )限定的成员,其访问权限分别为:公有的、私有的和保护的。

缺省关键字时,成员的访问权限为( )。

22.在C++中,处理( )的方法是采用try-catch结构。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档