速学堂 JAVA300 第四章练习

速学堂 JAVA300 第四章练习

一、选择题

1.以下语句中关于Java构造方法的说法错误的是(B)。(选择一项)
  A.构造方法的作用是为创建对象进行初始化工作,比如给成员变量赋值
  B.一个Java类可以没有构造方法,也可以提供1个或多个构造方法
  C.构造方法与类同名,不能书写返回值类型
  D.构造方法的第一条语句如果是super(),则可以省略,该语句作用是调用父类无参数的构造方法
  
  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中关于静态方法,以下说法中正确的是(A、C)。(选择二项)
  A.静态方法中不能直接调用非静态方法
  B.非静态方法中不能直接调用静态方法
  C.静态方法可以用类名直接调用
  D.静态方法里可以使用this
  
  4.下列选项中关于Java中类方法的说法错误的是(A、C)。(选择二项)
  A.在类方法中可用this来调用本类的类方法
  B.在类方法中调用本类的类方法时可直接调用
  C.在类方法中只能调用本类中的类方法
  D.在类方法中调用实例方法需要先创建对象
  
  5.分析如下Java程序的代码所示,则编译运行后的输出结果是(C)。(选择一项)

public class Test {
    int count=9;
    public void count1(){
        count=10;
        System.out.print("count1="+count);
    }
    public void count2(){
        System.out.print("count2="+count);
    }
    public static void main(String[ ] args) {
        Test t=new Test();
        t.count1();
        t.count2();
    }
}

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

二、简答题

  1. 面向过程和面向对象的区别。
    面向过程:编程时,为解决问题划分出若干个步骤,即列出解决问题的流程(过程),按照顺序依次求解
    面向对象:编程时,将问题分类划分出不同的部分,每个对象解决各自的部分,最后将各自的部分集合在一起共同解决目标问题

  2. 类和对象的关系
    类是一种抽象的类型
    对象是客观事物的抽象
    如:人类(类) 男性(对象)、女性(对象)
    对象具有类的基本特征,但可以在类的基础上保留自身的特色

  3. 构造方法的作用和特征
    构造方法:与类同名且返回值类型为同名类类型的方法,用于对对象的初始化。
    1.在对象创建时创建,可实例出不同对象,是每个不同对象中特有的方法
    2.不可用static方法修饰
    3.若在创建对象时未定义,由系统自动生成

  4. this关键字的作用和用法
    1.在程序中产生二义性之处,应使用this来指明当前对象;普通方法中,this总是指向调用该方法的对象。构造方法中,this总是指向正要初始化的对象。
    2.使用this关键字调用重载的构造方法,避免相同的初始化代码。但只能在构造方法中用,并且必须位于构造方法的第一句。
    3、 this不能用于static方法中。

  5. 简述static关键字的作用(提示:从static可以修饰变量,方法,代码块,三个方面来回答。)
    static :静态关键字 定义一个静态的 成员or属性or方法or others
    static修饰的成员变量和方法,从属于类,它的生命周期与一个类相同,与新建对象无关。

三、编码题

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

public class person { //定义一个person类,下面是成员属性和方法
		private String name;
		private int age;
		
		//成员方法
		public void display() { 
			System.out.println(name);
		}
		
		//构造方法
		public person(String name,int age){
			this.name = name;
			this.age = age;
		}
		
	//主函数
	public static void main(String args[]) {
		person person1 = new person("张三",60);
		person1.display();
	}
}

2. 定义一个圆类——Circle,在类的内部提供一个属性:半径®,同时 提供 两个 方 法 : 计算 面积 ( getArea() ) 和 计算 周长(getPerimeter()) 。 通过两个方法计算圆的周长和面积并且对计算结果进行输出。最后定义一个测试类对 Circle 类进行使用。

public class Circle {
	double r;
	
	public void getArea() {
		double area;
		area = Math.PI*r*r;
		System.out.println("该圆的面积为:"+area);
	}
	public void getPerimeter() {
		double peri;
		peri = 2*Math.PI*r;
		System.out.println("该圆的周长为:"+peri);
	}
	
	Circle(double r){
		this.r = r;
	}
	
	public static void main(String args[]) {
		Circle Circle1 = new Circle(2.5);
		Circle1.getArea();
		Circle1.getPerimeter();
	}
}

3. 构造方法与重载:定义一个网络用户类,信息有用户 ID、用户密码、 email 地址。在建立类的实例时把以上三个信息都作为构造函数的参数输入, 其中用户 ID 和用户密码时必须缺省时 email地址是用户 ID 加上字符串"@gameschool.com"。

public class InternetUser {
	int id;
	int pwd;
	String email;
	
	//构造函数1
	InternetUser(int id,int pwd,String email){
		this.id = id;
		this.pwd = pwd;
		this.email = email;
	}
	
	//构造函数2
	InternetUser(int id,int pwd){
		this.id = id;
		this.pwd = pwd;
		this.email=id+"@gameschool.com";
	}
	
	//输出函数,验证重载是否正确
	public void outputinfo() {
		System.out.println("用户名为:"+id);
		System.out.println("用户密码为:"+pwd);
		System.out.println("email地址为:"+email);
	}
	
	public static void main(String args[]) {
		InternetUser netuser1 = new InternetUser(001,123,"abc@emai.com");
		netuser1.outputinfo();
		InternetUser netuser2 = new InternetUser(002,321);
		netuser2.outputinfo();
	}

}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值