JAVA300第四章作业

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_38371360/article/details/89915382

一、选择题

1. 以下语句中关于Java构造方法的说法错误的是(B)。(选择一项)

A.构造方法的作用是为创建对象进行初始化工作,比如给成员变量赋值  
B.一个Java类可以没有构造方法,也可以提供1个或多个构造方法  
C.构造方法与类同名,不能书写返回值类型  
D.构造方法的第一条语句如果是super(),则可以省略,该语句作用是调用父类无参数的构造方法

Java中必须有构造方法,如果你没写那么系统将帮你创建一个默认的构造方法

2. 在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);
    }
}

A.6  
B.34  
C.8  
D.7

3. 在Java中关于静态方法,以下说法中正确的是(AC)。(选择二项)

A.静态方法中不能直接调用非静态方法  
B.非静态方法中不能直接调用静态方法  
C.静态方法可以用类名直接调用  
D.静态方法里可以使用this

B:非静态方法能直接调用静态方法,静态方法是属于类的,非静态方法是属于对象的,对象当然可以调用类的方法。D:静态方法中不能使用this,因为this代表的是调用这个对象的引用,而静态方法是属于类的,不属于对象,静态方法成功加载后,对象不一定存在。

4. 下列选项中关于Java中类方法的说法错误的是(AC)。(选择二项)

A.在类方法中可用this来调用本类的类方法  
B.在类方法中调用本类的类方法时可直接调用  
C.在类方法中只能调用本类中的类方法  
D.在类方法中调用实例方法需要先创建对象

5. 分析如下Java程序的代码所示,则编译运行后的输出结果是( C)。(选择一项)

A.count1=9; count2=9;
B.count1=10;count2=9;
C.count1=10; count2=10;
D.count1=9; count2=10;

在执行t.count1()时,count = 10;所以执行t.count2()时,count已经变成了10

二、简答题

1. 面向对象和面向过程的区别

面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了;

面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。

面向过程

优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、 Linux/Unix等一般采用面向过程开发,性能是最重要的因素。
缺点:没有面向对象易维护、易复用、易扩展

面向对象

优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统 更加灵活、更加易于维护 缺点:性能比面向过程低

2. 类和对象的关系

类是对象的抽象,对象是类的实体。

3. 构造方法的作用和特征

构造方法用于对象的初始化,也叫构造器,构造器是一个创建对象时被自动调用的特殊方法,目的是对象的初始化。构造器的名称应与类的名称一致。

4. this关键字的作用和用法

this是创建好的对象的地址,代表当前对象,因此在构造方法之前也可以使用

  • 当程序中产生二义性的时候,使用this来指明当前对象,普通方法中,this指向调用该方法的对象,在构造函数中,this指向正要初始化的对象。
  • this调用重载的构造函数,避免相同的初始化代码,但只能在构造函数中,并且只能在第一句。
  • this不能用于static方法中。
5. 简述static关键字的作用。提示:从static可以修饰变量,方法,代码块,三个方面来回答。

修饰变量:static声明的变量为静态成员变量,为类变量,声明周期和类相同。被static修饰的成员变量被类的所有对象所共享,其只有一份,省去内存空间。

修饰成员函数:可以使用"类名.方法名"的方式操作方法,避免了先要new出对象的繁琐和资源消耗。

static代码块:当new一个类对象时,static修饰的成员变量首先被初始化,随后是普通成员。也就是说,在创建对象时,static修饰的成员会首先被初始化

三、编码题

1. 编写 Java 程序用于显示人的姓名和年龄。定义一个人类Person。 该类中应该有两个私有属性: 姓名 (name) 和年龄 (age) 。定义构造方法用来初始化数据成员。再定义显示(display()) 方法将姓名和年龄打印出来。在 main 方法中创建人类的实例然后将信息显示。
public class Person {
	private String name;
	private int age;
	
	
	public Person(String name, int age) {
		super();
		this.name = name;
		this.age = age;
	}


	public void display() {
		System.out.println("name:"+name+'\n'+"age:"+age);
	}
	
	public static void main(String[] args) {
		Person person = new Person("zhangsan", 24);
		person.display();
	}
}
2. 定义一个圆类——Circle,在类的内部提供一个属性:半径 r,同时 提供 两个 方 法 : 计算 面积 ( getArea() ) 和 计算 周长(getPerimeter()) 。 通过两个方法计算圆的周长和面积并且对计算结果进行输出。最后定义一个测试类对 Circle 类进行使用。
import static java.lang.Math.PI;

public class Circle {
	public int r;
		
	public Circle(int r) {
		super();
		this.r = r;
	}

	public void getArea() {
		System.out.println("Area = " + PI * r * r); 		
	}
	
	public void getPerimeter() {
		System.out.println("Perimeter = " + 2 * PI * r);
	}
}
public class TestCircle {
	public static void main(String[] args) {
		Circle circle = new Circle(5);
		circle.getArea();
		circle.getPerimeter();
	}
}
3. 构造方法与重载:定义一个网络用户类,信息有用户 ID、用户密码、 email 地址。在建立类的实例时把以上三个信息都作为构造函数的参数输入, 其中用户 ID 和用户密码时必须缺省时 email地址是用户 ID 加上字符串"@gameschool.com"。
public class WebUser {
    int id; 
    String pwd; 
    String email;

    //构造方法1
    WebUser(int id,String pwd){
        this.id = id;
        this.pwd = pwd;
        this.email = this.id+"@gameschool.com";
    }
    
    //构造方法2
    WebUser(int id,String pwd,String email){
        this(id,pwd);
        this.email = email;
    }
    
      
    @Override
	public String toString() {
		return "WebUser [id=" + id + ", pwd=" + pwd + ", email=" + email + "]";
	}

	public static void main(String[] args) {
        WebUser wUser = new WebUser(123,"1314");
        WebUser wUser2 = new WebUser(123, "1314", "abc.com");
        System.out.println(wUser.toString());
        System.out.println(wUser2.toString());
    }
}

结果是:

WebUser [id=123, pwd=1314, [email protected]]

WebUser [id=123, pwd=1314, email=abc.com]

猜你喜欢

转载自blog.csdn.net/weixin_38371360/article/details/89915382