类和对象作业及答案(java)
类和对象作业
⼀、填空题
1. 类是组成Java程序的基本要素,类体有两部分构成:⼀部分是变量的定义,另⼀部分是 ⽅法 的定义。
2. 执⾏Person p = new Person();语句后,将在_ _堆内存__中给Person对象分配空间,并在栈内存中给引⽤变量p分配空间,存放
Person对象的引⽤。
3. 构造⽅法 是⼀种特殊⽅法,它的名字必须与它所在的类的名字完全相同,并且不书写返回值类型,在创建对象实例时由new运算符
⾃动调⽤。
4. 局部变量的名字与成员变量的名字相同,若想在该⽅法内使⽤成员变量,必须使⽤关键字 this 。
5. 使⽤关键字 this 来调⽤同类的其它构造⽅法,优点同样是以最⼤限度地代码的利⽤程度 ,减少程序的维护⼯作量。
6. ⽤关键字 static 修饰的成员变量是类变量,类变量是指不管类创建了多少对象,系统仅在第⼀次调⽤类的时候为类变量分配内
存,所有对象共享该类的类变量。
7. 使⽤static修饰的变量称为静态变量,静态变量可以有两种访问⽅式,分别是类名.静态变量名和_对象名.静态变量名 __。
8. 在⼀个类⽂件中的关键字package,import,class出现的可能顺序是__ ____________package、import、class____________。
9. package 关键字作为Java源⽂件的第⼀条⾮注释性语句,指明该源⽂件定义的类所有的包。
10. Java.lang 包是Java语⾔的核⼼类库,它包含了运⾏Java程序必不可少的系统类,使⽤该包下的类和接⼝不需要使⽤import
导⼊。
⼆、选择题
1.在Java中,以下程序编译运⾏后的输出结果为( D )。(选择⼀项)
public class Test {
int x, y;
Test(int x, int y) {
this.x = x;
this.y = y;
}
public static void main(String[] args) {
Test pt1, pt2;
pt1 = new Test(3, 3);
pt2 = new Test(4, 4);
System.out.print(pt1.x + pt2.x);
}
}
A6
B.34
C.8
D.7
2.分析如下Java程序的代码所⽰,则编译运⾏后的输出结果是( C )。(选择⼀项)
public class Test {
int count=9;
public void count1(){
count=10;
System.out.println("count1="+count);
System.out.println("count1="+count);
}
public void count2(){
System.out.println("count2="+count);
}
public static void main(String[ ] args) {
Test t=new Test();
}
}
A count1=9;
count2=9;
count2=9;
count2=10;
count2=10;
3.以下语句中关于Java构造⽅法的说法错误的是( B )。(选择⼀项)
A.构造⽅法的作⽤是为创建对象进⾏初始化⼯作,⽐如给成员变量赋值
B.⼀个Java类可以没有构造⽅法,也可以提供1个或多个构造⽅法
C.构造⽅法与类同名,不能书写返回值类型
D.构造⽅法的第⼀条语句如果是super(),则可以省略,该语句作⽤是调⽤⽗类⽆参数的构造⽅法
4.在Java中关于静态⽅法,以下说法中正确的是( AC )。(选择两项)
A静态⽅法中不能直接调⽤⾮静态⽅法
B.⾮静态⽅法中不能直接调⽤静态⽅法(递归)
C.静态⽅法可以⽤类名直接调⽤
D.静态⽅法⾥可以使⽤this
5.下列选项中关于Java中类⽅法的说法错误的是( AC )。(选择⼆项)
A在类⽅法中可⽤this来调⽤本类的类⽅法
B.在类⽅法中调⽤本类的类⽅法时可直接调⽤
C.在类⽅法中只能调⽤本类中的类⽅法
D.在类⽅法中调⽤实例⽅法需要先创建对象
三、 判断题
1. 类可以看成⼀类对象的模板,对象可以看成该类的⼀个具体实例。( T )
2. 如果没有为类中的某些成员赋初始值,Java会为类成员赋予固定的初始值,如数值变量的值为0,布尔变量的值为true,未初始化的
引⽤为null。( F )
3. Java中所有的变量,不管是成员变量还是局部变量,在使⽤前都必须进⾏初始化。( F )
4. 在Java中对象可以赋值,只要使⽤赋值运算符即可,相当于⽣成了⼀个各属性与赋值对象相同的新对象。( F )
5. System.out.println(“Hello java!”)中out是System类的⼀个静态成员变量。( T )
6. 构造⽅法⽤于创建对象,⼀般不允许有任何返回值,因此需要在构造⽅法返回类型处标注为void。( F )
7. Java语⾔为所有的Java程序⾃动导⼊包“java.lang”,因此Java程序可以直接⽤“java.lang”中的类和接⼝。( T )
四、 简答题
1、⾯向过程和⾯向对象的区别。
答:⾯向过程就是分析出解决问题所需的步骤,然后⽤函数把这些步骤⼀步⼀步实现,使⽤的时候⼀个⼀个调⽤就可以了。⾯向对象是把构成问题事物分解成对个对象,建⽴对象的⽬的不是为了完成⼀个步骤,⽽是为了描述某个事物在整个解决问题的步骤中的⾏为。
2、类和对象的关系
答:类是对象的⼀个模板,⽽对象是类的⼀个具体实例。
3、构造⽅法的作⽤和特征
答:作⽤:对类进⾏初始化;
特征:⽅法名与类名⼀致,没有返回值类型。
4、this关键字的作⽤和⽤法
答:this的作⽤是通过this访问⾃⾝的属性和⽅法。
5、简述static关键字的作⽤。
提⽰:从static可以修饰变量,⽅法,代码块,内部类四个⽅⾯来回答。
五、 编码题 1、请定义⼀个交通⼯具(Vehicle)的类其中有: 属性: 速度(speed)、 体积(size)等,⽅法:移动(move())、设置速度(setSpeed(int speed))、加速 speedUp()、减速 speedDown()等。最后在测试类 Vehicle 中的 main()中实例化⼀个交通⼯具对象并通过⽅法给它初始化 speed,size 的值并且通过打印出来。另外调⽤加速、减速的⽅法对速度进⾏改变。
1public class Vehicle {
2 private int size;
3 private int speed;
4 public static void main(String[] args) {
5 Vehicle ve = new Vehicle();
6 ve.setSize(10);//设置初始体积
7 ve.setSpeed(30);//设置初始速度
8 ve.move();//调⽤移动⽅法
9 ve.speedUp();//给交通⼯具减速
10 ve.speedDown();//加速
11
12 }
13
14 /** ⾏进 */
15 public void move(){
16 System.out.println("⾏进中......,速度 "+speed+"km/h" );
17 }
18 /** 设置速度 */
19 public void setSpeed(int speed){
20 this.speed = speed;
21 System.out.println("初始速度设置为:"+speed+" km");
22 }
23 /** 设置体积 */
24 public void setSize(int size){
25 this.size = size;
26 System.out.println("初始体积设置为:"+size+" m^3");
27 }
28 /** 加速20 */
29 public void speedUp(){
30 this.speed+=20;
31 System.out.println("速度增加20后为:"+speed+" km");
32 }
33 /** 减速10 */
34 public void speedDown(){
35 this.speed-=10;
36 System.out.println("减速10后为:"+speed+" km");
37 }
38}
2、编写 Java 程序⽤于显⽰⼈的姓名和年龄。定义⼀个⼈类Person。 该类中应该有两个私有属性: 姓名 (name) 和年龄 (age) 。定义构造⽅法⽤来初始化数据成员。再定义显⽰(display()) ⽅法将姓名和年龄打印出来。在 main ⽅法中创建⼈类的实例然后将信息显⽰。
1public class Person {
2 private String name;
3 private int age;
4 /** 在构造器中初始化成员变量 */
5 public Person(String name,int age){
6 this.name = name;
7 this.age = age;
8 }
9 public static void main(String[] args) {
10 Person p = new Person("张三",18);
11 p.display();
12 }
13 /** 显⽰姓名和年龄 */
14 public void display(){
15 System.out.println("姓名:"+name);
16 System.out.println("年龄:"+age);
17 }
18}
3、定义⼀个圆类——Circle,在类的内部提供⼀个属性:半径®,同时 提供 两个 ⽅ 法 : 计算 ⾯积 ( getArea() ) 和 计算 周长(getPerimeter()) 。 通过两个⽅法计算圆的周长和⾯积并且对计算结果进⾏输出。最后定义⼀个测试类对 Circle 类进⾏使⽤。
1 class Circle {
2 public int r;
3
4 public Circle(){}
5
6 public Circle(int r ){
7 this.r=r;
8 }
9
10 public void setR(int r){
11 this.r = r;
12 }
13
14 public void getArea(){
15 double area = Math.PI * r * r;//从Math⼯具类得到π的值static修饰的变量
16 System.out.println("圆的⾯积为:"+area);
17 }
18
19 public void getPerimeter(){
20 double zc = Math.PI * 2 * r;
21 System.out.println("圆的周长为:"+zc);
22 }
23
24}
25
26public class Test {
27 public static void main(String[] args) {
28 Circle c = new Circle(4);//初始半径为4,使⽤构造初始化
29 c.getArea();
30 c.getPerimeter();
31 }
32}
4、构造⽅法与重载:定义⼀个⽹络⽤户类,要处理的信息有⽤户 ID、⽤户密码、 email 地址。在建⽴类的实例时把以上三个信息都作为构造函数的参数输⼊, 其中⽤户 ID 和⽤户密码必须写,如果email缺省时 email地址是⽤户 ID 加上字符串"@gameschool"。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论