尚学堂java实战第四章课后习题

文章中的题目答案仅供参考

选择题答案
1.B
解析:一个java类必然存在构造器,即使没有定义构造器,也会存在一个默认的无参构造器。
2.D
3.AC
解析:
A(静态方法中应该通过对象实例化来调用非静态方法
B(非静态方法可以直接调用静态方法
D(静态方法不可以使用this的原因在于静态方法是通过类调用的方法,不需要实例化,就没有当前的对象,没有实例化对象没就不会有this
4.AC
解析:
A(在类方法中不可以使用this关键字调用本类的方法
C(在类方法中还可以通过对象.实例方法调用实例方法
5.C

解答题

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

解答:面向对象的具有三大特点,继承性、封装性、多态性。面向过程没有继承性和多态性。并且面向过程的封装只是封装,但是面向对象的封装可以封装数据和功能。解决复杂的吻戏面向对象是出于宏观上来解决问题,但是微观上依旧是面向过程。

2.类和对象的关系?

解答:对象是具体的事物,类是对对象的抽象;类可以看做是一类对象的模板,对象可以看做是类的一个具体实例;类用于描述同一类型对象的一个抽象概念,类中定义了这一类对象所应具有的共同属性和方法。

3.构造器的特征和作用

解答:构造器的特征:名称和类的名称一致。作用:在实例化对象初始化的时候调用相应的构造器,返回相应的对象。

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

解答:this关键字可以节约很多不必要的代码,使用方法就是this.属性/方法
(一)调用当前的属性
(二)调用构造方法
(三)调用当前的方法

5.简述static关键字的作用,从修饰变量、方法、代码块三个区域回答。

解答:static修饰的变量是该类的功用变量,被所有实例进行共享;对于该类的所有对象来说,static成员变量只有一份。类方法中不可以直接调用实例方法,也不可以使用this关键字。Java静态代码块中的代码会在类加载JVM时运行,且只被执行一次,也就是说这些代码不需要实例化类就能够被调用

编码题
1.

package cn.istell.packge.practice;
//第四章的编码题,编写一个person类,并且是私有属性的age和name,含有构造
//方法,并且进行总体的输出。
public class person {
    private int age;
    private String name;
    public person(int age,String name)
    {
        this.age=age;
        this.name=name;
    }
    public void display()
    {
        System.out.println("age="+age+",name="+name);
    }
    public static void main(String args[])
    {
        person p = new person(10,"谭子成");
        p.display();
    }
}

2

package cn.istell.packge.practice;
//定义一个circle类,存在一个属性r,代表半径,该类含有方法可以可以计算面积和周长;
//通过另外一个类来进行数据的测试
public class Cricle {
    int r;
    double pai=3.1415;
    public double getArea(int r)
    {
        return 1.0*r*r*pai;
    }
    public double getPerimeter(int r){
        return 2*pai*1.0*r;
    }
}
package cn.istell.packge.practice;

public class TryCricle {
    public static void main(String args[]){
        Cricle c = new Cricle();
        System.out.println(c.getArea(1));
        System.out.println(c.getPerimeter(1));
    }
}

3

package cn.istell.packge.practice;

public class Internet {
    String e_mail;
    String id;
    int password;
    public Internet(String id,int password){
        this.id=id;
        this.password=password;
        e_mail=id+"@gameschool.com";
    }
    public static void main(String args[]){
        Internet i = new Internet("2019",20);
        System.out.println(i.e_mail);
    }
}