面向对象基础_参考答案
面向对象试题(标准答案)

CoreJavaOOP考试题考试时间:90分钟考试总分:100分一、选择题(不定项选择)(22*4=88)1.类A,B的定义如下:class A {private int a = 100;A() {System.out.print("A()");System.out.println(a);}}class B extends A {private int a = 200;B() {System.out.print("B()");System.out.println(a);}}运行下面的代码:new B();输出的结果是:(A )。
A.A() 100B() 200B.A() 200B() 200C.B() 200A() 100D.B() 200A() 2002.下列说法正确的是(D )A.所有类都必须定义构造方法(构造器)B.构造方法必须初始化类的所有数据成员C.子类定义了构造器后,不再调用父类的构造器D.构造方法可以访问类的非静态成员3.在Java中,哪个关键字使类不能派生子类?, (A )A : finalB : publicC : privateD : native4.class Base{static void test(){System.out.println(“Base.test()”);}}public class Child extends Base{static void test(){System.out.println(“Child.test()”);}public static void main(String[] args){Base base = new Child();Child child = new Child();base.test();child.test();}}程序运行的结果是( C )A.Child.test() Child.test()B.Child.test() Base.test()C.Base.test() Child.test()D.Base.test() Base.test()5.下列哪些叙述是正确的(CD )A.在一个类中,方法不能与类名相同B.a bstract 可以修饰属性、方法和类C.实例方法可直接调用本类的static方法和非static方法D.static方法不能调用非static方法6.以下说法正确的是(ABC)A.子类不能继承父类的构造方法B.子类的构造方法可以访问父类的构造方法C.子类不可直接访问父类的私有属性D.子类可以重写父类的所有方法7.分析选项中关于Java中this关键字的说法正确的是( A )A.this关键字是在对象内部指代自身的引用B.this关键字可以在类中的任何位置使用C.this关键字和类关联,而不是和特定的对象关联D.同一个类的不同对象共用一个this8 下列关于继承的说法哪个是正确的?( B )A.子类只继承父类public方法和属性B.子类继承父类的非私有属性和方法C.子类只继承父类的方法,而不继承父类的属性D.子类将继承父类的所有属性和方法9.在Java中,关于final关键字的说法正确的是(AC )A.final修饰的变量,一旦赋值就不能被更改B.final修饰的类只能被一个子类继承C.final修饰的方法,不能在子类中被覆盖D.final修饰的方法,不能被子类继承10. String s=new String(“xyz”)创建了几个对象(C);A. 0B. 1C. 2D. 311.下列语句的序列执行后,k的值是( B )int m=3,n=6,k=0;While((m++)<(--n))++k;A.0B.1C.2D.312.下列哪一项不是面向对象的典型特征(D )A.封装 B.继承C. 多态D.抽象13.(多选)在java中,关于构造方法,下列说法正确的是(ABD )A.构造方法的名称必须与类名相同B.构造方法可以带参数C.构造方法不可以重载D.构造方法绝对不能有返回值14.下面关于变量的说法正确的是(BC )A.实例变量可以通过类名直接调用B.类变量可以通过类名直接调用C. Java中的参数传递都是值传递D. 在不同的作用域不能定义相同的变量15.下列代码有编译错误的是第(C )行1)public class Test{2)public static void main(String[] args){3)int[] arr1 = new int[12];4)char[] arr2 = new char[];5)int[] arr3 = {};6)Object[] obj = new Object[4];7)Object obj1 = new object[9];8)}9)}A.5)B.5) 7)C.4) 7)D.4)16.下列代码的运行结果是(A )public class Test{private int num;private static Test test;public Test(int num){this.num = ++ num;}static{int num = 16;test = new Test(num);++ test.num;}public static void main(String[] args){test = new Test(13);System.out.println(test.num);}}A.14B.15C.16D.1717.仔细分析下列代码,请指出错误的行(D )。
《C#面向对象基础教程》课后习题参考答案

一、填空题1.3.02.和WinForm、和XML、基础类库3.解决方案资源管理器4.服务器资源管理器5.Ctrl+J二、选择题1.A 2.B 3.B 4.Ctrl+J一、填空题1.值,引用2.Private/私有的3.const4.break5.variable>5&& variable<=10二、选择题1.C 2.D 3.B 4.B 5.一、填空题1.属性、方法2.New、构造3.~类名( ){ //析构函数体}。
用于销毁类的实例,来释放被类的实例所占用的资源。
4.继承、多态、封装5.被继承且被实现二、选择题1.B 2.A 3.D 4.D 5.一、填空题1.值类型2.对象类型3.void4.某个命名空间5.using 别名=命名空间或类的完全限定名;二、选择题1.C 2.C 3.C 4.D 5.一、填空题1.引用,02.值、引用、输出3.引用,方法4.20363542435.3,4二、选择题1.B 2.C 3.A 4.C 5. D一、填空题1.接口,继承2.方法、属性,实例化3.接口,父类4.IA.PaintIB.Paint5.03二、选择题1.C 2.C 3.A 4.A 5.一、填空题1.类,数据、操作2.限制,封装3.属性,get、set4.value5.只读二、选择题1.D 2.A 3.B 4.C 5.一、填空题1.object,密封类2.base,个数、次序3.父接口,new4.调用A的构造函数调用B的构造函数5.IB,public void IA.Disp(),public void IB.Disp()二、选择题1.D 2.B 3.B 4.D 5.一、填空题1.同名2.virtual,static、abstract3.对接口直接重新实现,对接口成员使用virtual关键字重新实现4.Shanghai5.this is a function in Athis is a function in Bthis is a function in C二、选择题1.D 2.C 3.B 4.D 5.一、填空题1.Collections2.健/值对3.先进后出/后进先出,Push、Pop4.先进先出,Enqueue、Dequeue5.类型,类型二、选择题1.D 2.B 3.C 4.C 5.一、填空题1.Length2.Trim3.System.Text4.¥1265.jpg二、选择题1.B 2.D 3.B 4.C 5.一、填空题1.try、catch2.throw [异常类的对象];3.编译、运行时、逻辑4.监视5.F9,F5,F11二、选择题1.D 2.A、C 3.B 4.D 5.C。
面向对象基础-参考答案

一、【必做题】1.(1)定义一个人类Person:1)定义一个方法sayHello(),可以向对方发出问候语“hello,my name is XXX”2)有三个属性:名字、身高、体重(2)定义一个PersonCreate类:1)创建两个对象,分别是zhangsan,33岁,1.73;lishi,44,1.742)分别调用对象的sayHello()方法。
(答案:Person.java、PersonCreate.java)2.(1)定义一个人类Person:1)定义一个方法sayHello(),可以向对方发出问候语“hello,my name is XXX”2)有三个属性:名字、身高、体重3)通过构造方法,分别给三个属性赋值(2)定义一个Constructor类:1)创建两个对象,分别是zhangsan,33岁,1.73;lishi,44,1.742)分别调用对象的sayHello()方法。
(答案:Constructor.java、或者是Person3.java)3.(1)定义一个矩形类Rectangle:1)定义三个方法:getArea()求面积、getPer()求周长,showAll()分别在控制台输出长、宽、面积、周长。
2)有2个属性:长length、宽width3)通过构造方法Rectangle(int width, int length),分别给两个属性赋值(答案:Rectangle.java)4.定义一个点类Point,包含2个成员变量x、y分别表示x和y坐标,2个构造器Point()和Point(int x0,y0),以及一个movePoint(int dx,int dy)方法实现点的位置移动。
()public class Point {private int x0;private int y0;public Point(){}public Point(int x0,int y0){t his.x0=x0;this.y0=y0;}public void movePoint(int dx,int dy){t his.x0 = this.x0 + dx;t his.y0 = this.y0 + dy;}}5.编写一个程序,创建两个Point对象p1、p2,分别调研movePoint方法后,打印p1和p2的坐标。
面向对象答案

一、填空题101 Java 中一个类可以有1 个父类。
102 如果一个类的声明中没有使用extends 关键字,这个类被系统默认为是Object 类的子类。
103 子类自然地继承了其父类中不是private 的成员变量作为自己的成员变量。
104 当子类中定义的成员变量和父类中的成员变量同名时,子类的成员变量隐藏了父类的成员变量。
105 子类通过成员变量的隐藏和方法的重写可以把父类的状态和行为改变为自身的状态和行为。
106 对于重写或继承的方法,Java 运行时系统根据调用方法的实例的类型来选择调用哪个方法。
107 对于子类创建的一个对象,如果子类重写了父类的方法,则运行时系统调用子类的方法。
108 对于子类创建的一个对象,如果子类继承了父类的方法,未重写,则运行时调用父类的方法。
109 在Java 语言中多态性体现在由方法重载实现的静态多态性和方法重写实现的动态多态性。
110 final 类不能被继承,即不能有子类。
111 abstract 类不能创建对象,必须产生其子类,由子类创建对象。
112 如果一个方法被修饰为final 方法,则这个方法不能被重写。
113 对于abstract 方法,只允许声明,而不允许实现。
114 如果一个方法被修饰为final 方法,则这个方法不能被重写。
115 如果一个类是一个abstract 类的子类,它必须具体实现父类的abstract 方法。
116 局部变量的名字与成员变量的名字相同,若想在该方法内使用成员变量,必须使用关键字this 。
117 在关键字中能代表当前类或对象本身的是this 。
118 如果在子类中想使用被子类隐藏的父类的成员变量或方法可以使用关键字super 。
119 子类如果想用父类的构造方法,必须在子类的构造方法中使用,并且必须使用关键字super 来表示。
120 如果在子类中想使用被子类隐藏了的父类成员变量或方法就可以使用关键字super 。
第7章 面向对象的程序设计基础 答案

第7章面向对象的程序设计基础答案一、单项选择题1.D2.A3.D4.D5.A6.A7.C8.D9.C 10.A 11.C 12.C 13.A 14.A 15. D 16.A 17.D 18. A 19.C 20.B 21.D 22.A23.C二、多项选择题1.B C2.A B D3.B C D4.A B C5.B C6.A B7.A B C D8.A B D9.A B D10.A B C D三、填空题1.事件方法2.封装性多态性3.容器类控件类容器类对象控件类对象4.类对象5.绝对引用相对引用6.This ThisForm ThisFormset Parent四、面向对象程序设计题1.(1)新建如图7-1所示的表单:图7-1 显示当前系统日期和时间表单(2)在相应的事件过程中,编写如下代码:a)a)在文本框Text1的Click事件中,写入如下代码:this.value=date()b)在文本框Text1的DblClick事件中,写入如下代码:this.value=time()C)在命令按钮Command1的Click事件中,写入如下代码:thisform.text1.value=""d)在命令按钮Command2的Click事件中,写入如下代码:thisform.release(3)运行表单,结果如图7-2所示:注:“删除”为command1按钮,“退出”为command2按钮。
2.(1)新建如图7-3所示的表单:(2)在相应的事件过程中,编写如下代码:a ) a ) 在表单Form1的ACTIV ATE 事件中,写入如下代码: thisform.text3.setfocus public n n=0b ) b ) 在文本框Text1的Click 事件中,写入如下代码:this.value=date()c ) c ) 在文本框Text2的Click 事件中,写入如下代码:this.value=time()d )在命令按钮Command1的Click 事件中,写入如下代码: ma=thisform.text3.valuek1=str(month(date()),2)+str(day(date()),2) k2=subs(time(),1,2) k=k1+k2 k=allt(k)if allt(ma)=kbel3.caption="欢迎使用本系统!" elsen=n+1 if n=3bel3.caption="您无权使用本系统!" thisform.text3.enabled=.f.mand1.enabled=.f.图7-2 显示当前系统的日期和时间的运行结果图7-3 密码输入表单elsebel3.caption="口令错,请重新输入口令!" thisform.text3.value="" thisform.text3.setfocus endif endife )在命令按钮Command2的Click 事件中,写入如下代码: thisform.release(3)运行结果如图7-4所示:注:“确定”为command1按钮,“关闭”为command2按钮。
(完整版)面向对象编程基础习题及答案

B.a runtime error
C.a logic error
31.Suppose x=0 and y=0 what is x after evaluating the expression (y > 0) & (1 > x++).
A.0
B.-1
C.1
32.Suppose x=0 and y=0 what is x after evaluating the expression (y > 0) && (1 > x++).
B. The program displays month is 9
C. The program displays month is 9.0
D.The program has a syntax error, because 09 is an incorrect literal value.
28.To assign a double variable d to a float variable x, you write
D.byte
19.Which of the following operators has the highest precedence?
A.casting
B.+
C.*
D./
20.An int variable can hold __________.
A.'x'
B.93
C.98.3
D.true
E.a and b
27.Analyze the following code.
public class Test {
2-面向对象基础测试题和答案

2-面向对象基础测试题和答案2-面向对象基础测试题和答案共40道选择题,每题2.5分。
多选题有错则全错,全对才满分. 面向对象部分测试题1.下面描述函数重写错误的是CA. 要有子类继承或实现B. 子类方法的权限必须大于等于父类的权限C. 父类中被private权限修饰的方法可以被子类重写D. 子类重写接口中的抽象方法,子类的方法权限必须是public的2.关于封装下面介绍错误的是(D )。
A. 封装将变化隔离B. 封装提高重用性。
C. 封装安全性D. 只有被private修饰才叫做封装3.试图编译运行下面的代码会发生什么情况Dpublic class MyClass{static int i;public static void main(String[] args){System.out.println(i);}}A. 错误,变量i没有被初始化B. 输出nullC. 输出1D. 输出04.在Java中,下面对于构造函数的描述正确的是(D)。
A. 类必须显式定义构造函数B. 构造函数的返回类型是voidC. 构造函数和类有相同的名称,并且不能带任何参数D. 一个类可以定义多个构造函数5.下面Java代码的运行结果是(C )。
class Penguin {private String name=null; // 名字private int health=0; // 健康值private String sex=null; // 性别public void Penguin() { //是一般方法,不是构造方法health = 10;sex = "雄";System.out.println("执行构造方法。
");}public void print() {System.out.println("企鹅的名字是" + name +",健康值是" + health + ",性别是" + sex+ "。
面向对象基础-参考答案

面向对象基础-参考答案一、【必做题】Ⅰ.选择题1、列选项中哪个是类publicclaTet{}的默认构造方法__C__A.Tet();B.Tet(void);C.publicTet();D.publicTet(void);E.publi cvoidTet();2、给定下列代码的执行结果是_E___publicclaA{voidA(){Sytem.out.println(“ClaA”);}publictaticvoidmain(String[]arg){newA();}}A.ClaAB.在第2行处抛出异常C.编译错误D.在第6行处抛出异常E.代码执行后没有输出某某某3、给定以下代码:1.publicclaContOver{2.publicContOver(int某,inty,intz){3.}4.}下列选项中,哪些可以在ConOver类中定义成重载的构造方法___AC_:A.ContOver(){}B.intContOver(){}C.ContOver(intz,inty,byte某){}D.ObjectContOver(int某,inty,intz){}E.voidContOver(byte某,bytey,bytez){}4、以下代码的执行结果是__A___?//Illegalmodifierforparameteri;onlyfinalipermittedA.编译失败B.编译成功,输出“0”C.编译成功,输出“1”D.编译成功,输出“2”5、以下代码的执行结果是__C___?A.代码编译成功,并且打印“=”B.代码编译成功,并且打印“=null”C.代码编译失败,因为为被初始化D.代码编译失败,因为不可以被引用E.代码编译成功,但是运行时抛出NullPointerE某ception6、给定以下代码:12.voidtart(){13.Aa=newA();14.Bb=newB();15.a.(b);16.b=null;1 7.a=null;对于在第14行创建的对象b,系统什么时候会对它进行垃圾回收_D___A.在第16行之后B.在第17行之后C.在第18行之后(当函数执行完成后)D.无法确定E.垃圾回收器不会回收该对象Ⅱ.程序分析题1、在指定位置上填写正确的代码:publicclaCircleStatic{taticdoublepi=3.14;intradiu=100;publictaticvoidmain(String[]arg){Sytem.out.println(_pi_);//打印pi_CircleStaticc=newCircleStatic();_________________;Sytem.out .println(__c._radiu_);//打印radiu}}2、下面的程序有错误,请修正,并说明原因:publicclaCircleStatic{taticdoublepi=3.14;intradiu=100;publictaticvoidmain(String[]arg){Sytem.out.println(pi);Sytem.out.println(radiu);//静态方法里不能直接用非静态属性Circlec=newCircle();Sytem.out.println(c.radiu);}}claCircle{taticdoublepi=3.14;intradiu;publicCircle(){}publicCircle(intr){radiu=r;}publictaticdoublegetPi(){returnpi;}publicvoidtatichowArea(){//publictaticvoidhowArea()修饰符顺序不对Sytem.out.println(pi某radiu某radiu);//静态方法里不能直接用非静态属性/某Circlec=newCircle();Sytem.out.println(pi某c.radiu某c.radiu);某/}}3、分析如下程序,写出执行结果://先静态块(只执行一次)方法块构造方法publicclaBlockDemo{publictaticvoidmain(String[]arg){Peronp=newPeron();Peronq=ne wPeron();p.ayHello();q.ayHello();}}claPeron{taticinteyeNum;Stringname;intage;doubleheight;{//非静态块Sytem.out.println(\);name=\;age=18;height=1.75;}tatic//静态块{Sytem.out.println(\);eyeNum=2;}publicPeron(){Sytem.out.println(\);}publicvoidayHello(){Sytem.out.println(\+name);}}taticblocknon-taticblockaaaaaaaaaaaanon-taticblockaaaaaaaaaaaaHello,mynameizhanganHello,mynameizhanganⅢ.编程题1.(1)定义一个人类Peron:1)定义一个方法ayHello(),可以向对方发出问候语“hello,mynamei某某某”2)有三个属性:名字、身高、体重(2)定义一个PeronCreate类:1)创建两个对象,分别是zhangan,33岁,1.73;lihi,44,1.74 2)分别调用对象的ayHello()方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、【必做题】Ⅰ.选择题1、列选项中哪个是类public class Test { }的默认构造方法__C__?A. Test();B. Test(void);C. public Test();D. public Test(void);E. public void Test();2、给定下列代码的执行结果是_E___?public class A {void A() {System.out.println(“Class A”);}public static void main(String[] args) {new A();}}A. Class AB. 在第2行处抛出异常C. 编译错误D. 在第6行处抛出异常E. 代码执行后没有输出***3、给定以下代码:1. public class ConstOver {2. public ConstOver (int x, int y, int z) {3. }4. }下列选项中,哪些可以在ConsOver类中定义成重载的构造方法___AC_:A. ConstOver ( ) { }B. int ConstOver ( ) { }C. ConstOver (int z, int y, byte x) { }D. Object ConstOver (int x, int y, int z) { }E. void ConstOver (byte x, byte y, byte z) { }4、以下代码的执行结果是__A___?//Illegal modifier for parameter i; only final is permittedA. 编译失败B. 编译成功,输出“0”C. 编译成功,输出“1”D. 编译成功,输出“2”5、以下代码的执行结果是__C___?A. 代码编译成功,并且打印“s=”B. 代码编译成功,并且打印“s=null”C. 代码编译失败,因为s为被初始化D.代码编译失败,因为s不可以被引用E. 代码编译成功,但是运行时抛出NullPointerException6、给定以下代码:12. void start() {13. A a = new A();14. B b = new B();15. a.s(b);16. b = null;17. a = null;18. System.out.println(“start completed”);}对于在第14行创建的对象b,系统什么时候会对它进行垃圾回收_D___?A. 在第16行之后B. 在第17行之后C. 在第18行之后(当函数执行完成后)D. 无法确定E. 垃圾回收器不会回收该对象Ⅱ. 程序分析题1、在指定位置上填写正确的代码:public class CircleStaticstatic double pi = 3.14;int radius=100;public static void main(String[ ] args){System.out.println( _pi_ ); //打印pi_ CircleStatic c = new CircleStatic ();_________________ ;System.out.println(__c._ radius _); //打印radius}}2、下面的程序有错误,请修正,并说明原因:public class CircleStatic {static double pi=3.14;int radius=100;public static void main(String[] args) {System.out.println(pi);System.out.println(radius); //静态方法里不能直接用非静态属性Circle c=new Circle();System.out.println(c.radius);}}class Circle {static double pi=3.14;int radius;public Circle(){ }public Circle(int r) {radius=r;}public static double getPi() {return pi;}public void static showArea() {// public static void showArea() 修饰符顺序不对System.out.println(pi*radius*radius);// 静态方法里不能直接用非静态属性/* Circle c=new Circle();System.out.println(pi*c.radius*c.radius);*/}}3、分析如下程序,写出执行结果://先静态块(只执行一次)方法块构造方法public class BlockDemo{public static void main(String[] args){Person p=new Person();Person q=new Person();p.sayHello();q.sayHello();}}class Person{static int eyeNum;String name;int age;double height;{ //非静态块System.out.println("non-static block");name="zhangsan";age=18;height=1.75;}static//静态块{System.out.println("static block");eyeNum=2;}public Person(){System.out.println("aaaaaaaaaaaa");}public void sayHello(){System.out.println("Hello, my name is "+name);}}static blocknon-static blockaaaaaaaaaaaanon-static blockaaaaaaaaaaaaHello, my name is zhangsanHello, my name is zhangsanⅢ.编程题1.(1)定义一个人类Person:1)定义一个方法sayHello(),可以向对方发出问候语“hello,my name is XXX”2)有三个属性:名字、身高、体重(2)定义一个PersonCreate类:1)创建两个对象,分别是zhangsan,33岁,1.73;lishi,44,1.742)分别调用对象的sayHello()方法。
(答案:Person.java、PersonCreate.java)2.(1)定义一个人类Person:1)定义一个方法sayHello(),可以向对方发出问候语“hello,my name is XXX”2)有三个属性:名字、身高、体重3)通过构造方法,分别给三个属性赋值(2)定义一个Constructor类:1)创建两个对象,分别是zhangsan,33岁,1.73;lishi,44,1.742)分别调用对象的sayHello()方法。
(答案:Constructor.java、或者是Person3.java)3.(1)定义一个矩形类Rectangle:1)定义三个方法:getArea()求面积、getPer()求周长,showAll()分别在控制台输出长、宽、面积、周长。
2)有2个属性:长length、宽width3)通过构造方法Rectangle(int width, int length),分别给两个属性赋值(答案:Rectangle.java)4.定义一个点类Point,包含2个成员变量x、y分别表示x和y坐标,2个构造器Point()和Point(int x0,y0),以及一个movePoint(int dx,int dy)方法实现点的位置移动。
()public class Point {private int x0;private int y0;public Point(){}public Point(int x0,int y0){t his.x0=x0;this.y0=y0;}public void movePoint(int dx,int dy){t his.x0 = this.x0 + dx;t his.y0 = this.y0 + dy;}}5.编写一个程序,创建两个Point对象p1、p2,分别调研movePoint方法后,打印p1和p2的坐标。
public class Point {private int x0;private int y0;public Point(){}public Point(int x0,int y0){t his.x0=x0;this.y0=y0;}public void movePoint(int dx,int dy){t his.x0 = this.x0 + dx;t his.y0 = this.y0 + dy;}}6.(1)定义一个动物类Creature1)定义一个方法setSnarl(Cat cat)可以设置动物发出猫的声音2)setSnarl(Dog dog)可以设置动物发出狗的声音3)定义一个outPut()方法,可以输出动物的声音(2)要求定义一个猫类Cat,具有猫的声音,将猫类传入动物类Creature的吼叫方法setSnarl(Cat cat)可以设置动物发出猫的声音(3)要求定义一个狗类Dog,具有狗的声音,将狗类传入动物类Creature的吼叫方法setSnarlDog dog)可以设置动物发出狗的声音(4)定义一个Sound类,在main方法里调用Creature类的setSnarl()和outPut()方法分别设置动物的声音和输出动物的声音效果显示:7.定义一个圆类Circle,描述圆对象。
圆有一个属性radius表示半径,还有一个findArea 方法用于计算圆的面积。
定义一个测试类。
给半径赋值为5,并且输出圆的面积。
}8、定义一个笔记本类,该类有颜色(char)和cpu型号(int)两个属性。
(1)无参和有参的两个构造方法;有参构造方法可以在创建对象的同时为每个属性赋值;(2) 输出笔记本信息的方法然后编写一个测试类,测试笔记本类的各个方法。
public class ComputeTest {public static void main(String[] args) {Computer c1 = new Computer();c1.showComputer();Computer c2 = new Computer('红', 32);c2.showComputer();}}class Computer {private char color;private int cpuNum;public Computer() {}public Computer(char color, int cpuNum) {this.color = color;this.cpuNum = cpuNum;}public char getColor() {return color;}public void setColor(char color) {this.color = color;}public int getCpuNum() {return cpuNum;}public void setCpuNum(int cpuNum) {this.cpuNum = cpuNum;}public void showComputer() {System.out.println("笔记本的颜色:" + getColor());System.out.println("笔记本的CPU型号:" + getCpuNum());}}9.定义一个汽车类Vehicle,要求如下:(1)属性包括:汽车品牌brand(String类型)、颜色color(String类型)和速度speed(double 类型),并且所有属性为私有。