Day07练习

A:简答题

1、 构造方法的作用是什么?构造方法的特点是什么?构造方法的注意事项? 构造方法中可不可以写return语句呢? 
	构造方法作用 创建对象 给对象初始化值
	构造方法特点 没有返回值类型 方法名与类名相同 没有返回值
	注意事项  若没有写构造方法 系统默认为无参构造
	构造方法中不可以写return
2、 一个类的缺省构造方法可以有参数吗?
	缺省构造方法就是类中没有写构造方法 编译器自动创建一个无参构造
	缺省构造方法没有参数
3、 静态代码块和构造代码块的特点分别是什么?
	静态代码块 随着类的加载而加载 优先于对象存在
	构造代码块 随着对象的调用而加载
4、 静态变量与成员变量的区别?
	静态变量属于类 成员变量属于对象
	静态变量随着类的加载而加载 成员变量随着对象的创建而存在
	静态变量根据类名来调用 成员变量根据对象名来调用
5、 请说明一个对象的创建过程做了哪些事情?
	Student s = new Student();
	new一个对象 在堆内存开辟一个空间
	给开辟的空间分配一个地址
	把对象的的所有非静态成员加载到开辟的空间下
	默认初始化值
	把开辟的地址赋给引用对象

B:看程序写结果(写出自己的分析理由),程序填空,改错,看程序写结果。

1、 请补全下面程序中横线位置的代码(可以编写多行代码)

public  class  ___Myclass___{  
  int  x, y;
  public Myclass( int  i, __int j__) {
    x=i;  
	y=j;
  }
}

2、写出下面程序的执行结果,如有错误,请指出错误原因

class Demo {
    int x;
    String s;
    float f;
    boolean[] b = new boolean[5];
    public static void main(String[] args){
        System.out.println(x);
        System.out.println(s);
        System.out.println(f);
        System.out.println(b[2]);
    }
}
// x s f b是静态变量 无法从静态引用非静态字段
//需要给变量之前加static
//static int x; 0
//static String s; null
//static float f; 0.0
//static boolean[] b = new boolean[5]; false

3、给出以下代码,请问该程序的运行结果是什么?

class Demo {
    static int i=1, j=2;
    static {
    	display(i);
    }
    public static void main(String[] args) {
    	display(j);
    }
    public static void display(int n) {
    	System.out.println(n);
    }
}
// 1  2

4、给出以下代码,请问该程序的运行结果是什么?

class Demo {
    static int i = 1;
    static {
    	++i; //i = 2
    }
    public static void main(String[] args) {
        increment(i, 5);
        display(i);
    }
    public static void increment(int n, int m){
   		n += m; 
    }
    public static void display(int n) {
    	System.out.println(n); //3
    }
    static {
    	++i; // 3
    }
}
//3

5、给出以下代码,请问该程序的运行结果是什么?

public class Demo {
    static int total = 10;
    public static void main(String[] args){
        new Demo();
        new Demo();
    }
    public Demo(){
        int temp = this.total;
        if (temp++ > 5) {
        	System.out.println(temp);
        }
    }
}
// 11  11

E:编程题

1、 定义标准手机类并进行测试

package org.homework07;

public class Test {
    public static void main(String[] args) {
        //定义标准手机类并进行测试
        Phone phone = new Phone("华为", 5200, "白色");
        System.out.println("品牌 " + phone.getBrand());
        System.out.println("价格 " + phone.getMoney());
        System.out.println("颜色 " + phone.getColor());
    }
}
package org.homework07;

public class Phone {
    private String brand;
    private double money;
    private String color;

    public Phone(String brand, double money, String color) {
        this.brand = brand;
        this.money = money;
        this.color = color;
    }

    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    public double getMoney() {
        return money;
    }

    public void setMoney(double money) {
        this.money = money;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

}

2、 编写java程序,完成随机数小游戏

package org.homework07;

public class GameRandom {
    public static void main(String[] args) {
        //编写java程序,完成随机数小游戏
        int num = (int)(Math.random()*100 + 1);
        System.out.println("生成1~100的随机数 = " + num);
    }
}

F:分析画图推原理(要求画出内存图,并对结果进行解释)

class Student {
    private String name;
    private int age;
    public Student(){}
    public Student(String name, int age){
        this.name = name;
        this.age = age;
    }
    public void setName(String name){
        this.name = name;
    }
    public String getName(){
    	return name;
    }
    public void setAge(int age){
    	this.age = age;
    }
    public int getAge(){
    	return age;
    }
    public void show(){
    	System.out.println( name + "---" + age );
    }
}

1、通过上述的学生类,创建对象,写出执行结果,并画出内存图

Student s = new Student();
System.out.println( s.getName());
System.out.println( s.getAge());
s.setName("小强");
s.setAge(20);
System.out.println( s.getName());
System.out.println( s.getAge());
// null---0
// 小强---20

请添加图片描述

2、通过上述的学生类,创建对象,写出执行结果,并画出内存图

Student s1 = new Student("小丽", 18);
Student s2 = new Student("小明", 20);
s1.show();
s2.show();
s1.setAge(21);
s2.setName("小亮");
s1.show();
s2.show();
//小丽---18 小明---20
//小丽---21 小亮---20

请添加图片描述

3、通过上述的学生类,创建对象,写出执行结果,并画出内存图

Student s1 = new Student("小丽", 18);
Student s2 = new Student("小明", 20);
Student s3 = s1;
s3.setAge(20);
s1.show();
s2.show();
s3.show();
//小丽---20
//小明---20
//小丽---20

请添加图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值