public abstract class YuanGong { /* 抽象类和抽象方法都用abstract修饰 抽象类不一定有抽象方法,由抽象方法的一定是抽象类 抽象类只能由方法签名,不能有方法体 类中具备的成员变量,方法,构造器,抽象类都具备 抽象类,接口,构造器私有的类都不能创建对象 一个继承抽象类的类必须重写其所有抽象方法,否则也必须定义为抽象类 */ private String name; public YuanGong(String name){ this.name=name; } public String getName() { return name; } public void dealData(){ }; } public class JL extends YuanGong{ private Data data; public JL(String name,Data d) { super(name); this.data=d; }
@Override public void dealData() { System.out.println("董事长"+getName()+"的视图"); } } public class Dsz extends YuanGong{ private Data data; public Dsz(String name,Data d) { super(name); this.data=d; }
@Override public void dealData() { System.out.println("董事长"+getName()+"的视图"); } } public class App { public static void view(YuanGong s){ s.dealData(); } public static void main(String[] args) { Data d = new Data(); YuanGong[]s={new Dsz("张三",d),new JL("李四",d),new JL("王五",d)}; for (int i = 0; i <s.length ; i++) { view(s[i]); } } }
以上是通过super将父类信息传到子类中去 三、子类修改父类信息并传递回去 给定如下电视机类 TV,请按照需求,将下列代码补充完整: a. 设计遥控器类 Ykq,该类的对象可向电视机对象发消息,用以更改电视机频道。 b. 将 App 中的 main()补充完整,可实现既定的输出。 注: 必须通过对象间的消息传递来实现,其它方式不给分。
class TV{ private int pd=1; //代表电视机的当前频道 public void setPd(int x){ //更改频道 if (x>0 && x<100) pd=x; } public void show(){ //显示当前频道 System.out.println(“当前:”+pd+” 频道”); } } class Ykq {//遥控器类,请补充完整 /* 请补充完整,设计必须满足需求 a / } class App{ public static void main (String[] args) { / 请补充完整,设计必须满足需求 b */ 输出结果为: 当前:1 频道 下面用遥控器将频道改为 5 频道 当前:5 频道
public class TV { private int pd=1; public void setPd(int x){ if(x>0&&x<100){ pd=x; } } public void show(){ System.out.println("当前:"+pd+"频道"); } } public class YKQ extends TV{ private TV t;//初始化一个父类类型 public YKQ(TV t) { this.t = t; } @Override public void show(){ System.out.println("下面用遥控器将频道改为5频道"); t.setPd(5); } } public class App { public static void main(String[] args) { TV t=new TV(); t.show(); TV p=new YKQ(t);//体现多态思想 p.show(); t.show(); } }
几道用到接口,list的题目
一、给定以下代码:
1 2 3 4 5 6 7 8 9 10
public class Computer { public static void main(String[] args) { ZB zb=new ZB(); WK wk=new WK(); SK sk=new SK(); zb.add(wk); zb.add(sk); zb.run(); } }
public interface Shape { double zhouchang(); } public class Yuan implements Shape{ private static double Pai=3.14; private int r; public static double getPai() { return Pai; } public static void setPai(double pai) { Pai = pai; } public int getR() { return r; } public void setR(int r) { this.r = r; } public Yuan(int r) { this.r = r; } @Override public double zhouchang() { return getR()* 2*getPai(); } } public class JuXing implements Shape{ private int a; private int b; public JuXing(int a,int b) { this.a = a; this.b=b; }
public int getA() { return a; }
public void setA(int a) { this.a = a; }
public int getB() { return b; }
public void setB(int b) { this.b = b; }
@Override public double zhouchang() { return 2*(getA()+getB()); } } public class App { public void compute(Shape shape){ System.out.println("周长="+shape.zhouchang()); } public static void main(String[] args) { App app=new App(); Shape yuan=new Yuan(6); app.compute(yuan); JuXing jx=new JuXing(3,5); app.compute(jx); } }
数组
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
一、静态初始化数组 int []ages=new int[]{12,24,36};//给了具体值没写长度 int []ages={12,24,36};//简化写法,右边还是new了的 double[]scores=new double[]{89.9,99.5}; //二维数组 int [][]a={{1,2,3},{4,5},{6,7,8,9}}; 二、动态初始化数组(先不存入具体值) 注:不可混用
三、利用for-each循环遍历二维数组 for (int[] ints : a) { for (int anInt : ints) { System.out.print(anInt+" "); } System.out.println(); }
package P.A; public class 销售科{ private double 成本价; double 出厂价; protectd double 代理价; public double 销售价; } package P.A; class 批发商{;} package P.B; import P.A.销售科; class 代理商 extends 销售科{;} package P.C; class 普通药店{;}
简答题答案背下来
1、简述结构化方法中“结构化”的含义,面向对象程序设计中“面向对象”的含义。 答:结构化:是指将问题求解看成是一组功能模块,大的功能由若干子功能模块组成, 各子模块又有一定的独立性。即功能模块的可组合、可拆解; 面向对象:是指将客观世界视为由一组对象组成,功能的发挥(或问题的解决)就是对 象之间的互操作。 2、为何说大程序开发的侧重点是可靠性、可维护性和可重用性? 答:由于大程序很难确保完全正确,核心模块可靠更受到重视; 由于维护活动涉及整个生命周期,易于维护(即可维护性),将能降低代码的修改难度, 减少错误发生的机率,故备受重视; 模块易于重用,不仅可减少开发工作量,而且重用的模块往往更可靠。 3、java 是如何跨平台的? 答:假定要实现在 A 平台编写的程序,到 B 平台运行: a) 用针对 A 平台的 java 编译器将源码翻译成字节码; b) B 平台必须配有针对 B 平台的 java 虚拟机。运行时,该虚拟机先将字节码翻译成 二进制,再交给硬件执行。 4.简述 IO 机制的核心思想、处理策略及其优点。 5、简单说明 java 的异常处理策略。 6、java 最初设计时,为何十分重视可靠性,并为此实施了哪些举措? 7.假定期望设计一个类 A,类中包含一个必须要拥有 public 属性的方法 f()。当不希 望其他程序员重写此方法时,请举出三种处理策略? 答:a. 给 f()方法施加 static 修饰; b. 给 f()方法施加 final 修饰; c. 将类 A 设定为 final 类。