📄 第6周作业(重载).txt
字号:
1、阅读以下程序,判断程序的运行结果,给打* 的语句写上注释,掌握方法的重载与覆盖
class Cleanser{
private String s=new String("Cleaner");
* public void append(String a){
s=s+" "+a ;
}
public void dilute(){
append("dilute()");
}
*public void apply(){
append("apply()");
}
public void scrub(){
append("scrub()");
}
public void print(){
System.out.println(s);
}
public static void main(String[] args){
Cleanser x=new Cleanser();
x.dilute();
x.apply();
x.scrub();
* x.print();
}
}
public class Detergent extends Cleanser{
public void scrub(){
* append("Detergent.scrub()");
super.scrub();
}
* public void foam(){
append("foam()");
}
public static void main(String arg[]){
Detergent x=new Detergent();
System.out.println("Subclass has :");
* x.dilute();
* x.scrub();
x.foam();
* x.print();
System.out.println("Super class has:");
* Cleanser.main(arg);
}
}
2、创建一个汽车类(Car),为其定义两个属性:颜色和型号,为该类创建两个构造函数:
第一个为无形参的构造函数,其过程是将颜色和型号初始化为红色、轿车;第二个须定义两个形参,并将形参的值分别赋给颜色和型号,为该类创建两个方法,分别用来显示颜色和型号。
创建一个(Car1)类,让其继承Car类,并且在该类中再定义一个属性(生产厂商),为该类创建三个构造函数:
第一个构造函数须定义三个形参,在这个构造函数中要调用Car类的第二个构造函数,将前两个参数赋给该构造函数,第三个参数用来给生产厂商赋值。
第二个构造函数带一个形参,把该参数值赋给颜色属性,并将生产厂商属性初始化为“上海大众”。
第三个构造函数无形参,在该构造函数中要求能调用上面所建的第二个构造函数。
在该类中定义一个main()方法,分别用上面的三个构造函数创建三个对象,并显示相关对象的各个属性。
3、以下三个文件是上次的习题答案,在C盘根目录建立一个文件夹test,将三个文件放在该目录下,对他们进行打包,将Vehicle.class放到a.b.v包中,将Car1.class和fuel.class放到a.b.c包中。注意:Car1 和 Vehicle 是互相访问的,他们存放在不同的包中,使用时须引入
试着编译三个文件,并运行之。
(1)、Vehicle.java
public class Vehicle{
public int journey;
private static int wheelNum;
private int loadNum;
public static void main(String arg[]){
Car c=new Car();
c.drive();
Car1.main(arg);
}
public static class Car{
public String color;
public String style;
public Car(){
color="White";
style="micor car";
}
public void drive(){
Vehicle v=new Vehicle();
System.out.println(v.journey);
System.out.println(wheelNum);
System.out.println(v.loadNum);
}
}
}
(2)、Car1.java
public class Car1 extends Vehicle.Car implements fuel{
Car1(){
super();
color="red";
}
public void burning(){}
public static void main(String ar[]){
Car1 c1=new Car1();
System.out.println(c1.color);
System.out.println(c1.style) ;
Car1.p.setprice(3);
System.out.println(fuel.p.getprice());
}
}
(3)、fuel.java
public interface fuel{
void burning();
class Price{
int price;
int getprice(){
return price ;
}
void setprice(int x){
price=x;
}
}
Price p=new Price();
}
4、阅读下面的程序,对程序中带##的那一条语句进行拆分,要求连着三次运行increment()方法,最后再运行print()方法,掌握this的使用方法
public class Testthis{
private int i=0;
//Testthis
int increment(){
i++;
return this;
}
void print(){
System.out.println("i="+i);
}
public static void main (String args[]){
Testthis x=new Testthis();
##x.increment().increment().increment().print();
}
}
5、阅读下面的程序,找出错误,并将其改正,掌握对象间关系的转换
class SuperClass{
private int x=100;
public int getx(){
return x;
}
}
class Subbie extends SuperClass{
private int y=200;
public int gety(){
return y;
}
}
public class ObjectConvert{
public static void main(String arg[]){
SuperClass superA=new SuperClass(),superB;
Subbie subA=new Subbie(),subB;
(new ObjectConvert()).useSubAsSuper(subB);
superB=subA;
System.out.println("superA.getx():"+superB.gety());
System.out.println("superA.getx():"+superb.y);
subB=superB;
System.out.println(subB.getx()+" "+subB.gety());
System.out.println(subB.x+" "+subB.y);
}
public void useSubAsSuper(SuperClass x){
System.out.println(x.gety()+"!!!!!!");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -