类和对象练习题

类和对象练习题
类和对象练习题

类和对象

一、选择题

1、下面对方法的作用描述不正确的是:( d )

A、使程序结构清晰

B、功能复用

C、代码简洁

D、重复代码

2、方法内定义的变量:( b )

A 、一定在方法内所有位置可见B、可能在方法内的局部位置可见

C、在方法外可以使用

D、在方法外可见

3、方法的形参:(a)

A、可以没有

B、至少有一个

C、必须定义多个形参

D、只能是简单变量

4、方法的调用:(c)

A、必须是一条完整的语句

B、只能是一个表达式

C、可能是语句,也可能是表达式

D、必须提供实际参数

5、return 语句:( d)

A、不能用来返回对象

B、只可以返回数值

C、方法都必须含有

D、一个方法中可以有多个return 语句

6、void 的含义:(d)

A、方法体为空

B、方法体没有意义

C、定义方法时必须使用

D、方法没有返回值

7、main()方法的返回类型是:( c )

A 、boolean B、int C、void D、static

8、方法重载所涉及的方法:( a )

A、有相同的名字

B、参数个数必须不同

C、参数类型必须不同

D、返回类型必须不同

9、下面关于类和对象之间关系的描述,正确的是( c )

A、联接关系B、包含关系C、具体与抽象的关系D、类是对象的具体化

10、下面关于java中类的说法哪个是不正确的( c )

A、类体中只能有变量定义和成员方法的定义,不能有其他语句。

B、构造方法是类中的特殊方法。

C、类一定要声明为public的,才可以执行。

D、一个java文件中可以有多个class定义。

11、下列哪个类声明是正确的( d)

A、public void H1{…} B 、public class Move(){…}

C、public class void number{}

D、public class Car{…}

12、下面的方法声明中,哪个是正确的(c)

A、public class methodName(){}

B、public void int methodName(){}

C、public void methodName(){}

D、public void methodName{}

13、下述哪些说法是不正确的?( b )

A、实例变量是类的成员变量

B、实例变量是用static关键字声明的

C、方法变量在方法执行时创建

D、方法变量在使用之前必须初始化

14、下面对构造方法的描述不正确是( b)。

A、系统提供默认的构造方法

B、构造方法可以有参数,所以也可以有返回值

C、构造方法可以重载

D、构造方法可以设置参数

15、定义类头时,不可能用到的关键字是( b)。

A、class

B、private

C、extends

D、public

16、下列类头定义中,错误的是( )。

A、public x extends y {...}

B、public class x extends y {...}

C、class x extends y implements y1 {...}

D、class x {...}

17、设A为已定义的类名,下列声明A类的对象a的语句中正确的是( ) 。

A、float A a;

B、public A a=A( );

C、A a=new int( );

D、static A a=new A( );

18、设i , j为类X中定义的int型变量名,下列X类的构造方法中不正确的是( a )。

A、void X(int k ){ i=k; }

B、X(int k ){ i=k; }

C、X(int m, int n ){ i=m; j=n; }

D、X( ){i=0;j=0; }

19、有一个类A,以下为其构造方法的声明,其中正确的是

( b )。

A、void A(int x){...}

B、public A(int x){...}

C、public a(int x){...}

D、static A(int x){...}

20、下列方法定义中,不正确的是( c )。

A、float x( int a,int b ) { return (a-b); }

B、int x( int a,int b) { return a-b; }

C、int x( int a,int b ); { return a*b; }

D、int x(int a,int b) { return 1.2*(a+b); }

21、设i , j为类X中定义的double型变量名,下列X类的构造方法中不正确的是( a )。

A、double X(double k ){ i=k; return i; }

B、X( ){i=6;j=8; }

C、X(double m, double n ){ i=m; j=n; }

D、X(double k ){ i=k; }

22、设ClassA为已定义的类名,下列声明Class A类的对象ca的语句中正确的是( a )。

A、public ClassA ca=new ClassA( );

B、public ClassA ca=ClassA( );

C、ClassA ca=new class( );

D、ca ClassA;

23、设m , n为类A中定义的int型变量名,下列A类的构造方法中不正确的是( a )。

A、void A(int k ){ m=k; }

B、A(int k ){ m=k; }

C、A(int m, int n ){m=i; n=j; }

D、A( ){m=0;n=0; }

24、设i、j、k为类School中定义的int型变量名,下列类School的构造方法中不正确的是( b )。

A、School ( int m){ ... }

B、void School ( int m){ ... }

C、School ( int m, int n){ ... }

D、School ( int h,int m,int n){ ... }

25、下列选项中,哪个是java语言所有类的父类( c )

A、String

B、Vector

C、Object

D、KeyEvent

26、Java中所有的类都是通过直接或间接地继承(a )类得到的。()

A、https://www.360docs.net/doc/c24065493.html,ng.Object

B、https://www.360docs.net/doc/c24065493.html,ng.Class

C、任意类

D、

以上答案都不对

27、对于任意一个类,用户所能定义的构造方法的个数至多为( d )。

A、0个

B、1个

C、2个

D、任意个

28、构造方法何时被调用(b )

A、类定义时

B、创建对象时

C、调用对象方法时

D、使用对象的变量时

29、类Test1定义如下

public class Test1{

public float aMethod(float a,float b){ }

( b )

}

将以下哪种方法插入()是不合法的。()

A、 public float aMethod(float a,float b,float c){ }

B、 public float aMethod(float c,float d){ }

C、 public int aMethod(int a,int b){ }

D、public int aMethod(int a,int b,int c){ }

30、用来导入已定义好的类或包的语句是( b )

A、main

B、import

C、public class

D、class

31、类是具有相同( a )的集合,是对对象的抽象描述。()

A、属性和方法

B、变量和方法

C、变量和数据

D、对象和属性

32、一个对象的生命周期分( c )3个阶段。()

A、使用、生成和清除

B、清除、使用和生成

C、生成、使用和清除

D、生成、清除和使用

33、以下(a )是专门用于创建对象的关键字。()

A、new

B、double

C、class

D、int

34、表达式(c)将返回当前的系统时间和日期()

A、DataFormat.getDataTime B 、new Data C 、DataFormat.getDataTimeInstance() D、new CurrentData

35、()为程序员提供了一些可完成通用任务的现有类(A)

A、Java类库 B 、preExisting C、java 代码 D 、library关键字

36、程序员通常会使用( C )

A 、程序员定义的方法

B 、现有的方法

C 、程序员定义的得带以及现有的方法

D 、既不是程序员定义的方法也不是现有的方法

37、利用方法中的()语句可为调用方法返回一个值( A )

A、return B 、back C、end D 、以上答案都不对

38、(A)方法用做返回两个参数中的较大值()

A 、max

B 、maximum C、larger D、greater

39、(D )将被传送至一个被调用的方法()

A、返回值

B、返回类型

C、参数表

D、参数列表

40、方法的参数可以是( D )

A、常量

B、表达式

C、变量 D 、以上答案都对

41、()是位于方法头中的一个以逗号分隔的声明列表( B )

A、参数表B、参数列表C、值表D、变量表

42、方法的定义是由()组成的( D )

A、一个方法 B 、一个方法体 C 、一对花括号 D 、以上答案都对

43、一个(D)对象将包括int型数据()

A、IntegerObject

B、Int

C、IntData

D、Integer

44、在方法调用过程中。位于方法名之后圆括号的变量被称为( B )

A、变元 B 、参数 C 、语句 D 、声明

45、一条return语句将给调用程序返回(D)个值()

A 、0 B、 1 C、任意数量D、A和B

46、方法的第一行被称为方法的( D )

A 、方法体B、标题C、调用者D、方法头

47、实例变量的作用域整个的( C )

A、语句块 B 、方法 C 、类 D 、以上答案都不对

48、在某个方法内部定义的变量被称为(B )

A 、实例变量B、局部变量C、类变量D、隐藏变量

49、在一个类的内部声明,但又处于该类方法外部的变量被称为( C )

A、局部变量

B、隐藏变量

C、实例变量

D、常量

50、从定义局部变量语句的外部访问该局部变量,会导致()出现(A )

A、逻辑出错 B 、编译错误C、运行错误 D 、以上答案都不对

51、实例变量( D )

A 、是在一个类的内部声明的变量

B 、的作用域为整个类

C 、可被同一类中的任何方法所访问

D 、以上答案都对

52、当方法内传递一个参数时,将该参数值的一个拷贝传递给方法的传递方式称为( B )

A、调用传递

B、值传递

C、引用传递 D 、方法传递

53、当一个变量在应用程序的整个生命周期中被使用,且整个过程中的其他值也不能被改变时,那么将他声明为一个( B )

A 、局部变量B、常量C、实例变量D、以上答案都不对

54、关键字()表示一个类定义的开始( C )

A、declare

B、new

C、class

D、以上答案都不对

55、类的定义必须包含在一对()内( B )

A、方括号

B、花括号

C、逗号

D、圆括号

56、实例变量的初始化( B )

A 、是在他们声明时完成

B 、将被设置为默认值

C 、是在一个构造方法中完成的

D 、以上答案都对

57、某个方法,在保证参数值有效性的前提下设置其实例变量number,该方法的方法名最好取( C )

A、number B、set C、setNumber

D、setValue

58、某个方法,在保证参数值有效性的前提下获取其实例变量number,该方法的方法名最好取( C )

A、number B、get C、getNumber D、getValue

59、通过使用关键字()创建对象( D )

A、object B 、instantiate C、create D、new

60、参照以下Java代码,以下四个叙述中最确切的是(C)

class A{

int x; static int y;

void fac(String s){System. out. println("字符串:"+s);}

}

A、x、y和s都是成员变量

B、x是实例变量、y 是类变量、s是局部变量

C、x和y是实例变量、s是参数

D、x、y和s都是实例变量

61、下列关于变量作用域的描述中,不正确的一项是

( C )

A、变量属性是用来描述变量作用域的

B、局部变量作用域只能是它做在的方法代码段内

C、类变量能在类的方法中声明

D、类变量的作用域是整个类

62、下列关于变量作用域的说法中,正确的一项是

( B )

A、方法参数的作用域是方法外部代码段

B、异常处理参数的作用域是方法外部代码段

C、局部变量的作用域是整个类

D、类变量的作用域是类的某个方法

63、System类在哪个包中?( D )

A 、java.util

B 、java.io

C 、java.awt

D 、https://www.360docs.net/doc/c24065493.html,ng

64、给出下面代码段

1) public class Test {

2) int m, n;

3) public Test() {}

4) public Test(int a) { m=a; }

5) public static void main(String arg[]) {

6) Test t1,t2;

7) int j,k;

8) j=0; k=0;

9) t1=new Test();

10) t2=new Test(j,k);

11) }

12) }

哪行将引起一个编译时错误?( D )

A 、line 3 B、line 5 C、line 6 D、line

10

65、对于下列代码、

1) class Person {

2) public void printValue(int i, int j) {//... }

3) public void printValue(int i){//... }

4) }

5) public class Teacher extends Person {

6) public void printValue() {//... }

7) public void printValue(int i) {//...}

8) public static void main(String args[]){

9) Person t = new Teacher();

10) t.printValue(10);

11) }

第10行语句将调用哪行语句?()

A 、line 2 B、line 3 C 、line 6 D、line 7

66、下列关于构造方法的说话正确的是( B )

A、类中的构造方法不可省

B、构造方法必须与类同名,但方法不能与class同名

C 、类的构造方法在一个对象被创建时自动执行

D、一个类只能定义一个构造方法

67、下列语句中,对构造方法的描述错误的是(D )

A、构造方法的名称必须和类名相同

B、构造方法没有返回值,返回类型也不能用void

C、构造方法在一个类中可以多次出现

D、当重写了带参数的构造方法,系统默认的不带参数的构造方法依然存在

68、下面关于java中类的说法哪个是不正确的( A )

A、类体中只能有变量定义和成员方法的定义,不能有其他语句

B、构造方法是类中的特殊方法

C、类一定要声明为public 的,才可以执行

D、一个java文件中可以有多个class定义

69、下列哪个不是面向对象的三大特性之一( D )

A、封装性

B、继承性

C、多态性

D、重载

70、下面哪种语言不是面向对象语言? ( C )

A、java

B、C++ C 、 C D、Smalltalk

71、在创建对象时必须( D )

A、先声明对象,然后才能使用对象

B、先声明对象,为对象分配内存空间,然后才能使用对象

C、先声明对象,为对象分配内存空间,对对象初始化,然后才能使用对象

D、上述说法都对

72、以下叙述不正确的是( D )

A、面向对象方法追求的目标是、尽可能地运用人类自然的思维方式来建立问题空间的模型,构造尽可能直观、自然的表达求解方法的软件系统。

B、面向对象方法的优点有、易于维护,可重用性好,易于理解、扩充和修改。

C、面向对象=对象+分类+继承+消息通信。

D、面向对象的基本特征是封装性、继承性和并行性。

73、对于构造函数,下列叙述不正确的是( B )。

A、构造函数是类的一种特殊函数,它的方法名必须与类名相同。

B、构造函数的返回类型只能是void型。

C、构造函数的主要作用是完成对类的对象的初始化工作。

D、一般在创建新对象时,系统会自动调用构造函数。

二、填空题

1、通常用关键字NEW 来新建对象,通过类创建对象的基本格式为:类名对象名=new 构造方法(); 。

2、通过类MyClass中的不含参数的构造方法,生成该类的一个对象obj,可通过以下语句实现Myclass obj=new Myclass(); 。

3、面向对象程序设计的主要特点是继承、多态和封装。

4、构造方法是类中的一种特殊方法,它用来定义对象的初始化。

5、在Java程序中定义的类中包括有两种成员,分别是:成员变量、成员方法。

6、用static修饰的方法,称为静态方法。它们不是对象的方

法,而是整个类的方法。静态方法只能处理用关键字修饰的数据。

7、列举三个常用类库的包、java.util

、java.io 和java.awt 。

8、Java中所有类都是类Object 的子类。

9、Java中类成员的限定词有以下几种:private、public、friendly、protected其中,public 的限定的范围最大。

10、被关键字final /private 修饰的方法是不能被当前类的子类重新定义的方法。

11、JA V A程序的基本元素是类。

12、class 是JA V A语言中定义类时必须使用的关键字。

13、定义在类中方法之外的变量称为成员变量。

14、方法声明包括方法头和方法体两部分。

15、方法头确定方法的方法名,形式参数的名字和类型、返回值的类型和绯闻限制。

16、方法体由包括在花括号内的声明部分和语句部分组成,描述方法的功能。

17、类头定义的基本格式要求为__修饰符__ _、__class关键字_ __、_____ 类名__和__ 花括号__。

18、对象是指Java程序通过规则引擎调用此规则包时,将数据存储在Java的类中,以对象的形式传入。

19、在Java类对象的编辑窗口中直接输入需要导入的类的完成类名。

20、类是Java的核心内容,是用来创建对象的模板。

21、类有两种基本成员是方法和成员变量。

22、一个Java源文件就是由若干个类构成的。

23、类是抽象,而对象是具体。

24、.对象的创建、创建对象的过程就是类的实例化的过程

25、对象的创建的步骤对象的声明、及对象的实例化。

26、使用new运算符实例化一个已经声明的类

27、实例化一个对象时,会同时调用类的构造方法对它进行。

28、类的是特殊的类方法,它必须和类同名,并且不能有返回类型,也不能用void来标注。

29、构造方法是具有特殊地位的方法,不可以调用构造方法。

30、一个类中可以有多个

31、类里面如果没有,系统会调用默认的构造方法,默认的构造方法是不带任何参数的。

32、包主要来解决的问题。

33、既是命名机制,又是可见度控制机制。

34、java语言的属性与方法的引用均使用__ _运算符。

35、定义类时通常使用关键字____ ,,___。

36、写出成员变量的定义格式__ _______。

37、对象的生命周期包括三个阶段、、。

38、Java中类成员的访问控制符有以下几种、private, public,__ ___, __ ____。其中,__ ______的限定的范围最大。39、Java中所有类都是类__ _的子类。Applet类是系统类_ __类的子类,存在于_ ___包中。

40、按作用域分类,变量有局部变量、__ _____、方法变量和异常处理参数。

41、JA V A语言通过接口支持_____ ____继承,使类继承具有更灵活的扩展性。

42、JA V A语言中___ ___类是所有类的根。

三、程序填空

1、请写出下面程序的运行结果。

package com.gem.j2SE03;

abstract class A {

private int x = 100;

public A(){

this.print();

}

public abstract void print();

}

class B extends A {

private int x = 200;

public B(int x){

this.x = x;

}

public void print(){

System.out.println("x=" + x);

}

}

public class TestJava {

private void mian() {

A a = new B(20);

}

}

程序运行结果为:

2、请写出下面程序的运行结果。

public class Test extends TT{

public void main(String args[]){

Test t = new Test("Tom");

}

public Test(String s){

super(s);

System.out.println("How do you do?");

}

public Test(){

this("I am Tom");

}

}

class TT{

public TT(){

System.out.println("What a pleasure!");

}

public TT(String s){

this();

System.out.println("I am "+s);

}

}

程序运行结果为:

3、阅读下列程序,写出程序运行的结果:public class Test {

public static void main (String[] args) {

String s1=new String("Hello");

String s2="Hello";

String s3="Hello";

System.out.println(s1==s2);

System.out.println(s1.equals(s2));

System.out.println(s2==s3);

System.out.println(s2.equals(s3));

String s4=s1;

System.out.println(s1==s4);

System.out.println(s1.equals(s4));

}

}

程序运行结果为:

4、public class Test {

private static void printArray(int[] arr) {

for(int i=0;i< arr.length;i++)

System.out.print(arr[i]+",");

System.out.println("\n");

}

private static void changeValue(int value) {

value*=2;

}

private static void changeValue(int[] arr) { for(int i=0;i

arr[i]*=2;

}

public static void main (String[] args) {

int[] arr={1,2,3,4,5};

changeValue(arr[0]);

printArray(arr);

changeValue(arr);

printArray(arr);

}

}

程序运行结果为:

5、class MyException extends Exception {

public MyException(String message) {

super(message);

}

}

public class Test {

private static void fun1() throws MyException {

throw new MyException("An MyException object is thrown in fun1().");

}

private static void fun2() throws MyException {

try {

fun1();

}

catch(NullPointerException ex) {

System.out.println("NullPointerException、"+ex.getMessage());

}

finally {

System.out.println("Go through finally code in fun2().");

}

}

public static void main (String[] args) {

try {

fun2();

}

catch(MyException ex) {

System.out.println("MyException:"+ex.getMessage() );

}

catch(Exception ex) {

System.out.println("Exception:"+ex.getMessage());

}

}

}

程序运行结果为:

6、下面是一个类的定义,请完成程序填空。

public class ___ _______

{

int x, y;

Myclass ( int ,int ) // 构造方法

{

x=i; y=j;

}

}

程序运行结果为:

7、下面是一个类的定义,请将其补充完整。

class ___ __ {

String name;

int age;

Student( ___ __s, int i) {

name=s;

age=i;

}

}

程序运行结果为:

8、下面程序的功能是通过调用方法max()求给定的三个数的最大值,请将其补充完整。

public class Class1{

public static void main( String args[] ){

int i1=1234,i2=456,i3=-987;

System.out.println("三个数的最大值、"+ );

}

public static int max(int x,int y,int z)

{ int temp1,max_value;

temp1=x>y?x:y;

max_value=temp1>z?temp1:z;

return max_value;

}

}

程序运行结果为:

9、写出下列程序的输出结果

public class Test{

public static void main(String[] args){

Count myCount = new Count();

int times = 0;

for(int i=0;i<100;i++)

increment(myCount , times);

System.out.println(“count is”+ myCount.count);

System.out.println(“time is”+ times);

}

public static void increment(Count c , int times){

c.count++;

times++;

}

}

class Count{

public int count;

Count(int c){

count =c;

}

Count(){

count =1;

}

}

程序运行结果为:

10、阅读下列程序,写出程序运行的结果:

class Circle {

double radius;

public Circle(double r){

this.radius=r;

}

}

public class Test{

public static void main(String[] args){

Circle circle1 = new Circle(1);

Circle circle2 = new Circle(2);

System.out.println("Before swap:circle1 ="+circle1.radius+" circle2 = "+circle2.radius);

swap(circle1,circle2);

System.out.println("After swap:circle1 = "+circle1.radius+" circle2 = "+circle2.radius);

}

public static void swap(Circle x , Circle y){

System.out.println("Before swap: x = "+x.radius+" y = "+y.radius);

Circle temp = x;

x = y;

y = temp;

System.out.println("Before swap: x = "+x.radius+" y = "+y.radius);

}

}

程序运行结果为:

11、下列程序的输出结果是什么?

public class Foo{

static int i=0;

static int j=0;

public static void main(String[] args){

int i=2;

int k=3;

int j=3;

System.out.println(“i + j is ”+ i + j);

k = i +j;

System.out.println(“k is ”+k);

System.out.println(“j is ”+ j);

}

}

程序运行结果为:

12、运行类C的输出结果是什么?

class A{

public A(){

System.out.println("The default constructor of A is

invoked");

}

}

class B extends A{

public B(){

System.out.println("The default constructor of B is invoked");

}

}

public class C{

public static void main(String[] args){

B b = new B();

}

}

程序运行结果为:

13、阅读下列程序写出输出结果:

class A{

String s="class A";

void show(){

System.out.println(s);

}

}

class B extends A{

String s="class B";

void show() {

System.out.println(s);

}

}

public class TypeConvert{

public static void main(String args[]){

B b1;

B b2=new B();

A a1,a2;

a1=(A)b2;

a2=b2;

System.out.println(a1.s);

a1.show();

System.out.println(a2.s);

a2.show();

b1=(B)a1;

System.out.println(b1.s);

b1.show();

System.out.println(b2.s);

b2.show();

}

}

程序运行结果为:

14、阅读下列程序,写出程序运行的结果:

class A {

int i, j;

public A(){

this.i=0;

this.j=0;

}

public void print(){ System.out.println ("i="+i+""+"j="+j);} }

class B extends A{

int m;

public B (int i, int j, int m){

super ();

this.m=m;

}

public void print (){System.out.println ("i="+i +" m="+m);} }

public class C{

public static void main(String args[]){

A a=new A();

B b=new B(1, 2, 3);

a.print ();

b.print ();

}

}}

程序运行结果为:

15、阅读下列程序,写出程序运行的结果:class Demo {

public void test ()

{System.out.println ("NO");}

public void test (int i)

{System.out.println (i);}

public void test (int a, int b)

{System.out.println (a+b);}

}

public class Test {

public static void main(String args[]){

Demo de=new Demo();

de.test();

de.test(5);

de.test(6,8);

}

}

程序运行结果为:

16、阅读下列程序,写出程序运行的结果:class Cube{

int width;

int height;

int depth;

Cube(int x,int y,int z){

this.width=x;

this.height=y;

this.depth=z;

}

public int vol(){

return width*height*depth;}}

public class UseCube {

public static void main(String[] args) { Cube a=new Cube(3,4,5);

System.out.println("长度="+a. width);

System.out.println("体积="+a.vol());

}

}

C语言的类和对象

C语言的类和对象 【类实现了C++面向对象程序设计的基础,我们使用类来定义对象的属性,类是 C++封装的基本单元。】 一、----- 类 使用关键字class创建类,一个类声明定义了一个连接代码和一个数据的新类型,这个新的类型又可以用来声明该类的对象。因此,类又是逻辑逻辑抽象概念,儿对象是物理存在的,也就是说对象是类的实例。 类的声明语法上和结构相似。 [一下是完整的类的形式] class class_name { private data and functions access_specifier: data and functions access_specifiter: data and functions //…….. access_specifier:是 data and functions }object_list; 其中,object_list是任选项,如过存在,他声明类的对象。access_specifier为下面的三个关键字之一: Public private protected 默认时,在类声明的函数和数据属于该类私有,只能被该类的成员访问。如果使用,pubilc访问限定符号,函数和程序就可以被其他部分访问。Protected访问限定符,仅在涉及继承的时候才需要(十五章了解)。访问限定符已经使用,其作用就保持到遇到别的访问限定符或者达到类声明的结束处。 在类声明内可以任意改变访问说明符号,对于某些声明,可以转换位public,然后再转换成private。 [如下所述] /******************************* ··构造函数和析构函数学习··· *******************************/ //Using a constructor and destructor. /******************************* 声明C++ 程序头文件 *******************************/ #include #include #include #include /******************************* ·名字空间:组织大型的程序结构·

实验5 类和对象1答案

实验5:Java类与对象 一、实验目的 (1)使用类来封装对象的属性和功能; (2)掌握Java类的定义。 (3)java对象的使用 二、实验任务 (1)按要求编写一个Java程序。 (2)按要求完善一个Java程序,编译、运行这个程序,并写出运行结果。 三、实验内容 1.编写一个Java程序片断,以定义一个表示学生的类Student。这个类的属性有“学号”、“班号”、“姓名”、“性别”、“年龄”,方法有“获得学号”、“获得班号”、“获得性别”、“获得姓名”、“获得年龄”、“获得年龄”。 2.为类Student增加一个方法public String toString( ),该方法把Student类的对象的所有属性信息组合成一个字符串以便输出显示。编写一个Java Application程序,创建Student类的对象,并验证新增加的功能。 class Student{ long studentID; int classID; String name; String sex; int age; public Student(long studentID,int classID,String name,String sex,int age){ this.studentID=studentID; this.classID=classID; https://www.360docs.net/doc/c24065493.html,=name; this.sex=sex; this.age=age; } public long getStudentID(){ return studentID; } public int getClassID(){

实验3 类和对象

实验3 类和对象的创建与使用 一、实验目的 1、掌握类的定义和对象的创建; 2、掌握构造方法的作用、格式及重载; 3、掌握修饰词对成员存取权限的限制。 4、掌握实例成员、类成员的定义和使用方法。 二、实验内容 1、定义储蓄账户类,并创建对象模拟银行基本操作。 2、两游戏角色决斗。给定二个不同的角色,判定交手的胜负关系。(选做) 3、设计学生类、学校类、录取类,根据学生成绩和学校分数线,判断是否录取。 三、实验步骤 说明:请将第1,3题代码写入实验报告实验步骤处。 1、模拟银行账户功能。 编写程序,模拟银行账户功能。要求如下: 属性:账号、姓名、地址、存款余额、最小余额。 方法:存款、取款、查询。 根据用户操作显示储户相关信息。 如存款操作后,显示储户原有余额、今日存款数额及最终存款余额。 取款时,若取款成功,显示信息提示;若最后余额小于最小余额,拒绝取款,并显示信息提示。具体显示信息可据方便性原则自拟。 public class AccountOperation { public static void main(String [] args) { Account account1=new Account("650101","柳眉","天河学院",800.00); Account account2=new Account("650102","郑杰","天河学院",200.00); account1.transfer(account1,account2,300.0); account1.deposit(300.5); account1.withdraw(200); account1.withdraw(300); account1.query(); System.out.println(account1.toString()); //System.out.println(https://www.360docs.net/doc/c24065493.html,); error!! } } class Account { private String account; private String name; private String address; private double balance;

类和对象练习题

类和对象 一、选择题 1、下面对方法的作用描述不正确的是:( d ) A、使程序结构清晰 B、功能复用 C、代码简洁 D、重复代码 2、方法定义的变量:( b ) A 、一定在方法所有位置可见B、可能在方法的局部位置可见 C、在方法外可以使用 D、在方法外可见 3、方法的形参:(a) A、可以没有 B、至少有一个 C、必须定义多个形参 D、只能是简单变量 4、方法的调用:(c) A、必须是一条完整的语句 B、只能是一个表达式 C、可能是语句,也可能是表达式 D、必须提供实际参数 5、return 语句:( d) A、不能用来返回对象 B、只可以返回数值 C、方法都必须含有 D、一个方法中可以有多个return 语句 6、void 的含义:(d) A、方法体为空 B、方法体没有意义 C、定义方法时必须使用 D、方法没有返回值 7、main()方法的返回类型是:( c ) A 、boolean B、int C、void D、static 8、方法重载所涉及的方法:( a ) A、有相同的名字 B、参数个数必须不同 C、参数类型必须不同 D、返回类型必须不同 9、下面关于类和对象之间关系的描述,正确的是( c ) A、联接关系B、包含关系C、具体与抽象的关系D、类是对象的具体化 10、下面关于java中类的说法哪个是不正确的( c ) A、类体中只能有变量定义和成员方法的定义,不能有其他语句。 B、构造方法是类中的特殊方法。 C、类一定要声明为public的,才可以执行。

D、一个java文件中可以有多个class定义。 11、下列哪个类声明是正确的( d) A、public void H1{…} B 、public class Move(){…} C、public class void number{} D、public class Car{…} 12、下面的方法声明中,哪个是正确的(c) A、public class methodName(){} B、public void int methodName(){} C、public void methodName(){} D、public void methodName{} 13、下述哪些说法是不正确的?( b ) A、实例变量是类的成员变量 B、实例变量是用static关键字声明的 C、方法变量在方法执行时创建 D、方法变量在使用之前必须初始化 14、下面对构造方法的描述不正确是( b)。 A、系统提供默认的构造方法 B、构造方法可以有参数,所以也可以有返回值 C、构造方法可以重载 D、构造方法可以设置参数 15、定义类头时,不可能用到的关键字是( b)。 A、class B、private C、extends D、public 16、下列类头定义中,错误的是( )。 A、public x extends y {...} B、public class x extends y {...} C、class x extends y implements y1 {...} D、class x {...} 17、设A为已定义的类名,下列声明A类的对象a的语句中正确的是( ) 。 A、float A a; B、public A a=A( ); C、A a=new int( ); D、static A a=new A( ); 18、设i , j为类X中定义的int型变量名,下列X类的构造方法中不正确的是( a )。 A、void X(int k ){ i=k; } B、X(int k ){ i=k; } C、X(int m, int n ){ i=m; j=n; } D、X( ){i=0;j=0; } 19、有一个类A,以下为其构造方法的声明,其中正确的是

类的定义和对象的创建

实验二类的定义和对象的创建 实验目的 1、学习定义类和使用类 2、学习创建的对象和使用对象 实验内容 1、定义一个Student类。其中定义有“学号”“姓名”“班级”“性别”“年龄”等属性,定 义一个无参数的构造器和至少一个有参数的构造器,定义“获得学号”“获得姓名”“获得班级”“获得性别”“获得年龄”“修改年龄”等方法。另外定义一个方法: public String toString( ) 把Student类的对象的所有属性信息组合成一个字符串,并检验这个功能的程序体现。 public class Student { private int 学号; private String 姓名; private String 班级; private char 性别; private int 年龄; public Student(int a, String b, String c, char d, int e) { 学号= a; 姓名= b; 班级= c; 性别= d; 年龄= e; } public Strudent() { this(0, "张三" ,"软件0901" ,'男', 19); } public int get学号() { return 学号; } public String get姓名() { return 姓名; } public String get班级() { return 班级; } public char get性别() { return 性别; } public int get年龄()

{ return 年龄; } public void set学号(int a) { 学号=a; } public void set姓名(String a ) { 姓名=a; } public void set班级(String a) { 班级= a; } public void set性别( char a) { 性别= a ; } public void set年龄(int a) { 年龄= a; } public String toString() { return "该学生的学号为"+ 学号+ " 姓名为"+姓名+" 班级为"+班级+ " 性别为" +性别+ " 年龄为" +年龄"; } } 2、编程实现圆类,其中包括计算圆周长和面积的方法,并测试方法的正确性。 public class Yuan { private double X, Y, R; public Yuan(double a, double b, double c) { X=a; Y=b; R=c; } public double MianJi() { return 3.1416*R*R; } public double ZhouChang() { return 2*3.1416*R; } public static void main(String[] args) { Yuan s=new Yuan(2,3,4); System.out.println("该圆的面积是"+ s.MianJi()); System.out.println("该圆的周长是"+ s.ZhouChang()); } }

实验四 类与对象

宁夏师范学院数学与计算机科学学院《面向对象程序设计(C++)》实验报告

}*/ // ~CPU() {cout<<"析构了一个CPU!"<

类的构建和对象的使用练习题

类的构建和对象的使用 判断题 1、一个类可以生成多个对象,并且这些对象都具有相同的属性。() 2、当运行javac命令对一个java源程序进行编译时,必须写出该源程序文件的完整文件名,包括扩展名.java。() 3、 java语言中不用区分字母的大写小写。() 4、数组允许存放不同类型的定长元素。() 程序分析题 阅读下列程序,然后回答问题。 class Car { int carNumber; Car(){} Car(int no){ this.carNumber=no; } void setNumber(int carNum) { carNumber = carNum; } void showNumber() { System.out.println(“My car No. is :” + carNumber); } } ①写出这里定义了什么类?有哪些成员变量?有哪些成员方法? ②有哪些构造方法? ④ void表示什么? 下列程序中,main()方法中使用了上面定义的类,产生了多少个对象?对象名字分别是什么?写出执行后的输出结果。 public class CarDemo { public static void main(String args[]){ Car demoCar1= new Car(); demoCar1.setNumber(168168); demoCar1.showNumber(); } } 编程题 1. 做一个学生管理系统的登陆界面,并判断用户名和密码是否正确。

2.做一个学生管理系统的子界面,来实现对10个学生的成绩的输入,并输出总成绩、平均成绩、最大成绩、最小成绩。再加上了对学生成绩的输入功能,如果输入的成绩部队不对就重新输入。

实验报告_实验3 类与对象

实验报告_实验3 类与对象(学生学号_姓 名) 一、实验目的 1.熟悉类的组成,掌握类的声明方法; 2.理解构造方法的作用,并掌握构造方法的定义; 3.熟练使用访问器和设置器实现信息隐藏和封装; 4.熟悉一般方法、构造方法的重载; 5.能够正确地区分静态变量与实例变量、静态方法与实例方法的不同,掌握静态变量和静态方法的使用;6.掌握对象的创建、引用和使用及向方法传递参数的方式; 7.掌握this关键字的使用以及对象数组的创建和访问; 8.掌握Java包的创建、包成员的各种访问方式; 9.掌握一维数组:声明,创建,初始化,数组元素的访问; 10.掌握多维数组的概念:二维数组的声明,初始化,元素的访问。 二、实验内容与步骤 1.请回答下列问题: (1)Cirecle类定义了几个属性?它们的类型、访问权限各为什么? 答:两个PI,floatl类型,静态私有权限 Radius,float;类型,私有权限 (2)类中的“PI”的值可以在程序的方法中更改吗? 答:不可以,因为PI为静态变量 (3)Cirecle类定义了几个方法?它们的访问权限怎样?

答:四个,getRadius(),setRadius(float radius),getPerimeter(),getArea()都是公有权限 2.写出Rectangle类的程序代码: class Rectangle { private float width; private float length; public float getWidth( ) //获取矩形宽度 {return width;} public float getLength( ) //获取矩形长度 {return length;} public float getPerimeter( ) //获取矩形周长 {return 2*(width+length);} public float getArea( ) //获取矩形面积 {return (width*length);} public void setWidth(float w) //设置矩形宽度 {width=w;} public void setLength(float l) //设置矩形长度 {length=l;} } 3.回答下列问题: (1)该程序中有几个类?主类是什么?如果将这两个类放在一个文件中,源程序文件名应是什么?答:两个类:Circle、CircleTest;主类是CircleTest;源程序文件名是CircleTest。

C++语言程序设计实验答案_类与对象

实验04 类与对象(6学时) (第4章类与对象) 一、实验目的 二、实验任务 4_1 声明一个CPU类。 包含等级(rank)、频率(frequency)、电压(voltage)等属性,有两个公有成员函数run、stop。其中,rank为枚举类型CPU_Rank,声明为enum CPU_Rank{ P1=1, P2, P3, P4, P5, P6, P7 }; frequency为单位是MHz的整型数,voltage为浮点型的电压值。观察构造函数和析构函数的调用顺序。 4_2 声明一个简单的Computer类。 有数据成员芯片(cpu)、内存(ram)、光驱(cdrom)等,有两个公有成员函数run和stop。cpu为CPU类的一个对象,ram为RAM类的一个对象,cdrom为CDROM类的一个对象,声明并实现这个类。 4_3 声明一个表示时间的结构体。 可以精确表示年、月、日、小时、分、秒;提示用户输入年、月、日、小时、分、秒的值,然后完整地显示出来。

4_4(习题4-10)设计一个用于人事管理的People(人员)类。 考虑到通用性,这里只抽象出所有类型人员都具有的属性:number(编号),sex(性别)、birthday(出生日期)、id(身份证号)等。其中“出生日期”声明为一个“日期”类内嵌子对象。用成员函数实现人员信息的录入和显示。要求包括:构造函数和析构函数、内联成员函数、组合。 三、实验步骤 1.(验证)声明一个CPU类,观察构造函数和析构函数的调用顺序。 首先声明枚举类型CPU_Rank,例如enum CPU_Rank{ P1=1, P2, P3, P4, P5, P6, P7 },再声明CPU类,包含等级(rank)、频率(frequency)、电压(voltage)等私有数据成员,声明成员函数run和stop,用来输出提示信息,在构造函数和析构函数中也可以输出提示顺序。在主程序中声明一个CPU的对象,调用其成员函数,观察类对象的构造与析构顺序,以及成员函数的调用。程序名:。(程序见步骤2) ★程序的运行结果: 2.(示例)调试程序文件。 使用调试功能观察程序的运行流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序。参考程序如下: 操作)调试操作步骤如下: (1)单击“调试 | 逐语句”命令,系统进行单步执行状态,程序开始运行,一个DOS 窗口出现,此时Visual Studio中光标停在main()函数的入口处。

C++实验二类与对象(附答案)

实验二类与对象 实验目的和要求 1.掌握类、类的数据成员、类的成员函数的定义方式。 2.理解类成员的访问控制方式。 3.掌握对象的定义和操作对象的方法。 4.理解构造函数和析构函数的定义与执行过程。 5.掌握重载构造函数的方法。 6.了解拷贝构造函数的定义方法。 实验容 1.下面程序中有错,在不删除和增加代码行的情况下,改正错误语句,使其正确运行。#include class Aa { public: Aa(int i=0) { a=i; cout<<"Constructor "<

(1) #include class Date { void set_date(); void show_date(); int year; int month; int day; }; Date d; int main() { set_date(); show_date(); } void set_date() { cin>>d.year; cin>>d.month; cin>>d.day; } void show_date() { cout< class A { public: void A(int i=0) { m=i; } void show() { cout<

实验二 类和对象的使用_参考答案

实验二类和对象的使用 班级:学号:姓名:成绩: 一.实验目的 1.掌握类和对象的概念、定义和使用方法。 2.掌握不同特性对象成员的访问方法。 二.使用的设备和仪器 计算机+Windows XP +Visual C++6.0 三.实验内容及要求 1.定义一个Book类,在该类定义中包括以下数据成员和成员函数: 数据成员:bookname(书名)、price(价格)、number(存书数量) 成员函数:set()输入图书信息;display()显示图书的情况;borrow()将存书数量减1,并显示当前存书数量;restore()将存书数量加1,并显示当前存书数量。 在主函数中,要求创建某一图书对象,并对该图书进行简单的显示、借阅和归还等管理。 2.定义一个中国好声音歌手类。其中,包括每个歌手的名字、年龄、来自哪个省份、所唱的曲目等。可以实现报名、显示、修改等功能。 3.定义一个时间类,实现课堂中第五节中的例2.2。 数据成员:时、分、秒 成员函数:输入时间、设置时间、按12小时制显示时间、按24小时制显示时间、增加1小时、减少1小时等功能。 4.定义一个学生类Student,要求如下: (1)数据成员包括学号、姓名、数学成绩、英语成绩和C++成绩;要求对所输入的成绩的合法性进行判断。 成员函数包括:设置学生的信息函数;输入学生的信息函数;输出学生的信息函数; 计算学生平均成绩的函数。 (2)添加新的数据成员:出生年月日;实现多个学生信息的添加、成绩的修改(一次只能修改一科成绩)等功能。要求单独定义一个日期类,并对所输入的出生年月日的合法性进行判断。 (3)设计一个菜单函数。 ****************************************************************** * * * 1.添加 2.设置 3.显示 4.修改成绩 5.计算平均分0.退出* * *

实验5 类和对象

类和对象 一、实验目的 1、掌握类的定义和对象的创建; 2、掌握构造方法的作用、格式及重载; 3、掌握修饰词对成员存取权限的限制。 4、掌握实例成员、类成员的定义和使用方法。 二、实验内容 1、定义储蓄账户类,并创建对象模拟银行基本操作。 2、两游戏角色决斗。给定二个不同的角色,判定交手的胜负关系。(选做) 3、设计学生类、学校类、录取类,根据学生成绩和学校分数线,判断是否录取。 三、实验步骤 说明:请将第3题代码写入实验报告实验步骤处。 1、模拟银行账户功能。 编写程序,模拟银行账户功能。要求如下: 属性:账号、姓名、地址、存款余额、最小余额。 方法:存款、取款、查询。 根据用户操作显示储户相关信息。 如存款操作后,显示储户原有余额、今日存款数额及最终存款余额。 取款时,若取款成功,显示信息提示;若最后余额小于最小余额,拒绝取款,并显示信息提示。具体显示信息可据方便性原则自拟。 2、两游戏角色决斗。(选做) 角色1交手次数+1,生命值-1,经验值+2;角色2交手次数+1,生命值-2,经验值+3。经验值每增加50时,生命值+1;生命值<0判为负。生命值初始为1000,经验值初始为0。给定二个不同的角色,判定交手的胜负关系。 提示: step1:建立角色类,给出相应的成员,并能以生命值、经验值初始化角色对象。 step2:建立fight方法,接收二个角色类型的参数,返回胜者。 step3:初始化二角色,调用fight方法。 3、根据分数录取学生。 设计一个学校类,其中包含成员变量line(录取分数线)和对该变量值进行设置和获取的方法。 编写一个学生类,它的成员变量有考生的name(姓名)、id(考号)、total(综合成绩)、sports(体育成绩)。它还有获取学生的综合成绩和体育成绩的方法。 编写一个录取类,它的一个方法用于判断学生是否符合录取条件。其中录取条件为:综合成绩在录取分数线之上,或体育成绩在96以上并且综合成绩大于300。在该类的main()方法中,建立若干个学生对象,对符合录取条件的学生,输出其信息及“被录取”。 四、实验记录与分析(可自拟或选择) 1、重载的构造方法具有不同个数或不同类型的参数,编译器就可以根据这一点判断出用new 关键字产生对象时,该调用哪个构造方法了。 2、每个对象拥有各自的实例成员变量,而所有对象共享一个类成员变量。 3、实例成员变量通过对象引用,类成员变量通过类或对象名访问。

实验四 类与对象

实验四类与对象 一、实验目的 1. 掌握类的声明和使用。 2. 掌握类的声明和对象的声明。 3.复习具有不同访问属性的成员的访问方式。 4. 观察构造函数和析构函数的执行过程。 5.学习类的组合使用方法。 6. 使用 VC++的debug 调试功能观察程序流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序。 二、实验任务 1. 声明一个 CPU类,包含等级(rank)、频率(frequency)、电压(voltage)等属性,有两个公有成员函数run、stop。其中,rank 为枚举类型CPU_Rank,声明为enum CPU_Rank {P1=1,P2,P3,P4,P5,P6,P7},frequency为单位是 MHz 的整型数,voltage为 浮点型的电压值。观察构造函数和析构函数的调用顺序。 2. 声明一个简单的 Computer类,有数据成员芯片(cpu)、内存(ram)、光驱(cdrom)等等,有两个公有成员函数 run、stop。cpu 为 CPU类的一个对象,ram为RAM 类的 一个对象,cdrom为 CDROM 类的一个对象,声明并实现这个类。 3. (选做)设计一个用于人事管理的 People(人员)类。考虑到通用性,这里只抽象 出所有类型人员都具有的属性:number(编号)、sex(性别)、birthday(出生日期)、id(身份证号)等等。其中“出生日期”声明为一个“日期”类内嵌子对象。用成员 函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、 内联成员函数、组合。 三、参考程序 1、#include using namespace std; enumCPU_Rank {P1=1,P2,P3,P4,P5,P6,P7}; class CPU { private: ?CPU_Rank rank; ?int frequency; ?float voltage; public: CPU (CPU_Rank r, intf, float v) ?{ ?rank = r; ?frequency = f; ?voltage = v; ?cout << "构造了一个CPU!" << endl; ?}

JAVA类与对象的创建

试验四 类和对象的创建 一.类的定义 类是组成Java程序的基本要素。类封装了一类对象的状态和方法。类用来定义对象的模板。 类的实现包括两部分:类声明和类体。基本格式为: 修饰符class类名[extends父类名]{ /*类体的内容*/ } 1.类声明 以下是一个类声明的例子。 class People成为类声明,People是类名。习惯上,类名的第一个字母大写,但这不是必须的。类的名字不能是Java中的关键字,要符合标识符规定,即类的名字可以由字母、下划线、数字或美元符号组成,并且第一个字母不能是数字。但给类命名时,最好遵守下列规则: (1)如果类名使用拉丁字母,那么名字的首写字母使用大写字母,如Hello、Time、People等。 (2)类名最好容易识别,当类名由几个“单词”复合而成时,每个单词的首写字母使用大写,如BeijingTi me、AmericanGame、HelloChina等。 2.类体 编写类的目的是为了描述一类事物共有的属性和功能,描述过程由类体来实现。类声明之后的一对大括号“{”、“}”以及它们之间的内容称为类体,大括号之间的内容称为类体的内容。 类体的内容由两部分构成:一部分是变量的定义,用来刻画属性;另一部分是方法的定义,用来刻画功能。 下面是一个类名为“Trapezia”的类,类体内容的变量定义部分定义了4个float类型变量:top、bottom、h igh和laderArea,方法定义部分定义了两个方法:“getArea”和“setHigh”。

二.对象 1.对象的创建 创建一个对象包括对象的声明和为对象分配内存两个步骤。 (1)对象的声明。 一般格式为: 类的名字对象名字; 如: 这里People是类的名字,zhubajie是我们声明的对象的名字。 (2)为声明的对象分配内存。 使用new运算符和类的构造方法为声明的对象分配内存,如果类中没有构造方法,系统会调用默认的构造方法(你一定还记得构造方法的名字必须和类名相同这一规定),如: 例1: 「注」如果类里定义了一个或多个构造方法,那么Java不提供默认的构造方法。 2.对象的使用 对象不仅可以改变自己变量的状态,而且还拥有了使用创建它的那个类中的方法的能力,对象通过使用这些方法可以产生一定的行为。 通过使用运算符“.”,对象可以实现对自己的变量访问和方法的调用。 例2:

类与对象的复习与练习

一选择题 1.下面方法定义中,正确的是: A)int x(int a,b){return a-b;} B)double x(int a,int b){int w;w=a-b;} C)double x(a,b){return b;} D)int x(int a,int b){return a-b;} 2.下面方法定义中,不正确的是: A)float x(int a,int b){return a-b;} B)int x(int a,int b){return a-b;} C)int x(int a,int b){return a*b;} D)int x(int a,int b){return 1.2*(a-b);} 3下面方法定义中,正确的是: A)int x(){char ch='a';return (int)ch;} B)void x(){return true;} C)int x(){return true;} D)int x(int a,b){return a-b;} 4设X 、Y 均为已定义的类名,下列声明类X的对象x1的语句中正确的是? X x1=new X(); B)X x1= X ( ); C)X x1=new Y( ); D)int X x1; 5设A为已定义的类名,下列声明并创建A 类的对象a的语句中正确的是?

A)A a=new A( ); B)public A a=A( ); B)C)A a=new class( ); D)a A; 6下面类的定义中结构正确的是? A)class A B)class 2A C)int class A D)public class A () 7下面关于类的结构的说法正确的是? A)类只能包含一个构造方法 B)类可以没有属性 C)类只能包含方法 D)类只能包含属性 8下面哪个关键字在定义类头时用不到? A)class B)public C)extends D)int33 9 this在程序中代表的是? A)类的对象 B)属性 C)方法 D)父类 10下列对构造方法的调用方式的描述中正确的是? A)使用new调用 B)使用类名调用 C)使用对象名调用

实验一 类和对象

实验一类和对象 Visual C++ 6.0集成开发环境的使用: Visual C++系列产品是微软公司推出的一款优秀的C++集成开发环境,其产品定位为Windows 95/98、NT、2000 系列Win32 系统程序开发,由于其良好的界面和可操作性,被广泛应用。由于2000 年以后,微软全面转向.NET 平台,Visual C++6.0 成为支持标准C/C++规范的最后版本。 1.启动 安装完系统后,可以选择如下两种方式启动 1) 点击Windows “开始”菜单,选择“程序”菜单下“Microsoft Visual Studio 6.0”子菜单下的快捷方式Microsoft Visual C++ 6.0 启动Visual C++ 6.0。 2) 点击Windows “开始”菜单,选择“运行”,输入msdev,即可启动。启动后的界面如下: 图 1 启动界面 2.建立工程

选择“File”菜单下的“New”菜单项或直接按Ctrl+N,启动新建向导,如图2 所示: 图 2 新建向导 选择在“Projects”属性页选择Win32 Console Application,在Project Name 中输入项目名称demo,在Location 中选择项目文件,如图2 中c:\test\demo,项目所有文件将保存在此文件。输入完毕,单击确定按钮,进入下一界面如图3:

图 3 项目类型向导 在图 3 所示界面中选择a simple application,然后点击Finish 按钮,系统显示图4 所示界面。如果想退回上一步可以选择“Back”按钮。 图 4 项目信息 在图 4 中选择OK 按钮,系统完成项目的创建,并保存项目相关的信息。项目的目录结构如图5 所示。 1) Demo.dsw 是项目工作区文件,双击此文件,即可打开此项目; 2) Demo.dsp 为项目文件; 3) demo.cpp 是项目中的一个源程序;stdafx.h 和stdafx.cpp 为自动创建的源程序,一般不用修改。 图 5 目录结构

C实验报告第四章类与对象

C++实验报告 实验4 类与对象 一、实验目的 1、掌握类的声明和使用 2、掌握类的声明和对象的声明 3、复习具有不同访问属性的成员的访问方式 4、观察构造函数和析构函数的执行过程 5、学习类的组合使用方法 6、使用DEBUG调试功能观察程序流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序 二、实验任务 1、声明一个CPU类,包含等级rank、频率frequency、电压voltage等属性,有两个公有成员函数run、stop。其中,rank为枚举类型CPU-Rank,声明为enum CPU-Rank{P1=1,P2,P3,P4,P5,P6,P7}, frequency为MHz的整数型,voltage为浮点型的电压值。观察构造函数好析构函数的调用顺序。 2、声明一个简单的Computer类,有数据成员芯片cpu、内存ram、光驱cdrom 等,有两个公有成员函数run、stop。cpu为CPU类的一个对象,ram为RAM 类的一个对象,cdrom为CDROM类的一个对象,声明并实现这个类。 3、设计一个用于人事管理的People类。考虑到通用性,这里只抽象出所有类型人员都具有的属性:number编号、sex性别、birthday出生日期、id身份证号等。其中出生日期声明为一个日期类内嵌子对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、内嵌成员函数、组合。 三、实验内容 任务1:首先声明枚举类型,在这里出现了知识性错误,不清楚具体应如何声明,经查询相关书籍,知道应在类外进行声明。初次用类来进行编程,在概念上是有一些混乱的,例如构造函数和析构函数的调用顺序等。在用debug单步调试后,明白其中道理。 源程序:

c类和对象练习题

c类和对象练习题 Standardization of sany group #QS8QHH-HHGX8Q8-GNHHJ8-HHMHGN#

第8章类与对象 8.1知识要点 1.掌握类与对象的概念和定义方法,掌握类成员的访问属性。 2.掌握构造函数的概念、定义方法和使用方法。 3.掌握析构函数的概念、定义方法和使用方法。 4.掌握拷贝构造函数的概念、定义方法和使用方法。 5.掌握包含对象成员的类构造函数的定义方法。 6.掌握静态成员的概念、定义方法、作用和特点。 7.掌握友元的概念、定义方法、作用和特点。 8.掌握类模板的定义格式与使用方法。 8.2典型例题分析与解答 例题1:下列有关类的说法不正确的是()。 A.对象是类的一个实例 B.任何一个对象只能属于一个具体的类 C.一个类只能有一个对象 D.类与对象的关系和数据类型与变量的关系相似 答案:C 分析:对象是类的一个实例,类与对象的关系和数据与变量的关系相似,所以一个类可以有多个对象。 例题2:下面()项是对构造函数和析构函数的正确定义。 A.void X::X(), void X::~X() B.X::X(参数),X::~X() C.X::X(参数),X::~X(参数) D.void X::X(参数),void X::~X(参数) 答案:B 分析构造函数无返回类型、可带参数、可重载;析构函数无返回类型、不可带参数、不可重载。 例题3:()的功能是对象进行初始化。 A.析构函数B. 数据成员 C.构造函数 D.静态成员函数 答案:C 分析:当一个对象定义时,C++编译系统自动调用构造函数建立该对象并进行初始化;当一个对象的生命周期结束时,C++编译系统自动调用析构函数注销该对象并进行善后工作; 例题4:下列表达方式正确的是()。 A.class P{B.class P{ public: public: int x=15; int x; voidshow(){cout<

实验1 类和简单对象(4学时)

实验一 (2010-3-23) 一、实验名称: 类和简单对象。 二、实验目的: (1)理解类和对象的概念; (2)掌握类与对象的定义方法; (3)理解类的成员的访问控制的含义,公有和私有成员的区别; (4)掌握构造函数和析构函数的含义与作用、定义方式和实现; (5)能够根据给定的要求定义类并实现类的成员函数; (6)掌握string类的使用方法 (7)了解C++面向对象程序设计的基本思想、基本方法和基本步骤; (8)掌握MS Visual C++6.0调试C++程序的基本方法、基本步骤。 三、练习项目 1. 输入下列程序,按要求进行实验,并记录实验的结果。 #include using namespace std; class Coordinate { public: Coordinate(int x1, int y1){x=x1; y=y1;} Coordinate(Coordinate &p); ~Coordinate(){cout<<"Destructor is called."<

} int main(){ Coordinate p1(3,4); Coordinate p2(p1); Coordinate p3=p2; cout<<"p3=("< class Date{ public: void printDate(); //显示日期 void setDay(int); //设置日的值 void setMonth(int); //设置月的值 void setYear(int); //设置年的值 private: int day, month, year; }; int main(){ Date testDay; testDay.setDay(5); testDay.setMonth(10); testDay.setYear(2010); testDay.printDate(); return 0; }; 3. 下面是一个计算器类的定义,请完成该类的成员函数的实现,并设计一个主函数使用该类和相关成员函数以测试

相关文档
最新文档