本文主要是介绍java设计模式课后作业(待批改),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
此文章仅记录学习,欢迎各位大佬探讨
实验(一) 面向对象设计
实验目的
①使用类来封装对象的属性和功能;
②掌握类变量与实例变量,以及类方法与实例方法的区别;
知识回顾
详情见OOP课件
实验内容
1.编程创建一个Point类
- 实验要求:
在其中定义两个变量表示一个点的坐标值,再定义构造函数初始化为坐标原点,然后定义一个方法实现点的移动,再定义一个方法打印当前点的坐标。并创建一个对象验证。
public class T1 {public static void main(String[] args) {point p = new point();p.OrginPoint(10, 10);p.MovePoint(-5, 6);p.PrintPoint();}
}class point {int x, y;void OrginPoint(int a, int b) {this.x = a;this.y = b;}void MovePoint(int a, int b) {this.x += a;this.y += b;}void PrintPoint() {System.out.print("当前坐标为:" + this.x + "_" + this.y);}
}
2.继承
- 实验要求:
super实例编写一个Java应用程序,该程序包括4个类:Teacher
类、JavaTeacher
类、DBTeacher
类
和主类T3。要求:
(1) Teacher
类中有成员变量name和age,有构造方法:Teacher(String name,int
age)
,并且有个teaching()
方法,在teaching()
方法中输出“上课......”的信息。
(2)JavaTeacher
类是Teacher
类的子类,有构造方法:JavaTeacher(String name,int
age)
,在JavaTeacher
类中重写方法teaching()
,在teaching()中调用父类teaching()方法,输出“打开eclipse,编写Java程序”的信息。
(3)DBTeacher
类是Teacher
类的子类,有个构造方法:DBTeacher(String name,int
age)
,在DBTeacher
类中重写方法teaching()
,在teaching()中调用父类teaching()方法,输出“打开oracle,编写pl-sql程序”的信息。
(4)在主类T2的main方法中创建JavaTeacher
与DBTeacher
类的对象类测试这2个类的功能。
public class T2 {public static void main(String[] args) {JavaTeacher jt=new JavaTeacher("张三",20);jt.teaching();DBTeacher dbt=new DBTeacher("李四",19);dbt.teaching();}
}class Teacher {String name;int age;public Teacher(String n, int a){this.name=n;this.age=a;}public void teaching(){System.out.print("上课......");}
}class JavaTeacher extends Teacher{public JavaTeacher(String n, int a) {super(n, a);}public void teaching(){super.teaching();System.out.print("打开eclipse,编写Java程序");}
}
class DBTeacher extends Teacher{public DBTeacher(String n, int a) {super(n, a);}public void teaching(){super.teaching();System.out.print("打开oracle,编写pl-sql程序");}
}
3.接口
- 实验要求:
创建一个描述平面图形的接口Figure,添加1个area( ) 方法计算平面图形的面积。再创建2个类Circle(圆类)和Square(正方形类)分别实现接口Figure的area( )方法,并写出测试类计算并输出1个圆和一个正方形的面积。
public class T3 {public static void main(String[] args) {Circle c=new Circle();c.area(3);Square s=new Square();s.area(4);}
}
interface Figure {default void area() {}
}
class Circle implements Figure {public void area(int radius){System.out.println(3.14*radius*radius);}
}
class Square implements Figure {public void area(int length){System.out.println(length*length);}
}
4.多态
不够灵活的影院售票系统
某软件公司为某电影院开发了一套影院售票系统,在该系统中需要为不同类型的用户提供不同的电影票打折方式,具体打折方案如下:
(1) 学生凭学生证可享受票价8折优惠;
(2) 年龄在10周岁及以下的儿童可享受每张票减免10元的优惠(原始票价需大于等于20元);
(3) 影院VIP用户除享受票价半价优惠外还可进行积分,积分累计到一定额度可换取电影院赠送的奖品。
该系统在将来可能还要根据需要引入新的打折方式。
重新设计该软件:
public class T4 {public static void main(String[] args) {StudentTicket st=new StudentTicket();st.count();}
}
interface Preferential{double price=80.00;default void count(){}
}class StudentTicket implements Preferential{public void count() {System.out.println(0.8*this.price);}
}
class ChildTicket implements Preferential{public void count(){System.out.println(this.price-10);}
}
class VipTicket implements Preferential{public void count(){System.out.println(0.5*this.price);}
}
这篇关于java设计模式课后作业(待批改)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!