1.定义一个平面图形形状类Shape,在该类中定义一个求面积的方法area()。
再定义类:圆(Circle),矩形(Rectangle)和三角形(Triangle),从Shape类继承。
而类正方形(Square)从矩形(Rectangle)继承。在所有子类中定义必要的成员变量和成员方法(包括构造
方法和重写的方法)。
要求:编写一个测试程序,实现构造不同的图形(圆,矩形,三角形,正方形),并能计算各类图形的面积。
2.1)设计一个User类,其中包括用户名、口令等属性以及构造方法(至少重载2个)。获取和设置口令的方法,
显示和修改用户名的方法等。编写应用程序测试User类。
(2)定义一个student类,其中包括用户名、姓名、性别、出生年月等属行以及init()——初始化各属性、
display()——显示各属性、modify()——修改姓名等方法。实现并测试这个类。
(3)从上题的student类中派生出Granduate(研究生)类,添加属性:专业subject、导师adviser。重载相应
的成员方法。并测试这个类。
3.编写Java程序,模拟简单的计算器。
定义名为Number的类,其中有两个整型数据成员n1和n2,应声明为私有。编写构造方法,赋予n1和n2初始值,
再为该类定义加(addition)、减(subtration)、乘(multiplication)、除(division)等公有成员方
法,分别对两个成员变量执行加、减、乘、除的运算。
在main方法中创建Number类的对象,调用各个方法,并显示计算结果。
4.题目:银行账户程序 本题目要求编写程序模拟银行账户的存取款操作
步骤1:编写程序Account.java,其中定义银行账户类Account.该类中有账户、姓名、存款余额等数据域;有
存款、取款、显示当前余额等方法。
步骤2:编写程序CreditAccount.java,其中定义信用卡账户类CreditAccount.该类继承自Account类,增加
一个透支限额数据域。同时该类账户取款时允许透支,但不能超过透支限额。
步骤3:编写程序SavingAccount.java,其中定义储蓄账户类SavingAccount.该类继承自Account类,强调该类
账户取款时不允许透支
步骤4:编写测试程序TestAccount.java.测试上述类的定义是否成功。
5.请定义一个交通工具(Vehicle)的类,其中有: 属性:速度(speed),体积(size)等等
方法:移动(move()),设置速度(setSpeed(int speed)),加速speedUp(),减速speedDown()等等.
最后在测试类Vehicle中的main()中实例化一个交通工具对象,并通过方法给它初始化speed,size的值,并且
通过打印出来。另外,调用加速,减速的方法对速度进行改变。
第一题:
* 定义一个平面图形形状类Shape,在该类中定义一个求面积的方法area()。
* 再定义类:圆(Circle),矩形(Rectangle)和三角形(Triangle),从Shape类继承。
* 而类正方形(Square)从矩形(Rectangle)继承。
* 在所有子类中定义必要的成员变量和成员方法(包括构造方法和重写的方法)。
* 要求:编写一个测试程序,实现构造不同的图形(圆,矩形,三角形,正方形),并能计算各类图形的面积。
主方法:
package com.wdd.week03.day03.test03;
/**
* 定义一个平面图形形状类Shape,在该类中定义一个求面积的方法area()。
* 再定义类:圆(Circle),矩形(Rectangle)和三角形(Triangle),从Shape类继承。
* 而类正方形(Square)从矩形(Rectangle)继承。
* 在所有子类中定义必要的成员变量和成员方法(包括构造方法和重写的方法)。
* 要求:编写一个测试程序,实现构造不同的图形(圆,矩形,三角形,正方形),并能计算各类图形的面积。
* @author WDD
*
*/
public class Main {
public static void main(String[] args) {
Shape c = new Circle(10);
c.area();
Shape r = new Rectangle(4,5);
r.area();
Shape t = new Triangle(3, 4, 5);
t.area();
Shape s = new Square(5);
s.area();
}
}
抽象的图形类:
package com.wdd.week03.day03.test03;
//图形类
public abstract class Shape {
public abstract void area();
}
具体的几个子类:
package com.wdd.week03.day03.test03;
//圆类
public class Circle extends Shape{
double r;//半径
public Circle(double r) {
super();
this.r = r;
}
public Circle() {
super();
}
@Override
public void area() {
// TODO Auto-generated method stub
System.out.println("三角形的面积为:" + (3.14 * this.r * this.r));
}
}
package com.wdd.week03.day03.test03;
//矩形类
public class Rectangle extends Shape{
double length;//长
double width;//宽
public Rectangle() {
super();
}
public Rectangle(double length) {
super();
this.length = length;
}
public Rectangle(double length, double width) {
super();
this.length = length;
this.width = width;
}
@Override
public void area() {
// TODO Auto-generated method stub
System.out.println("矩形的面积为:" + (this.length * this.width));
}
}
package com.wdd.week03.day03.test03;
//三角形类
public class Triangle extends Shape{
double a;
double b;
double c;
public Triangle() {
super();
}
public Triangle(double a, double b, double c) {
super();
this.a = a;
this.b = b;
this.c = c;
}
@Override
public void area() {
// TODO Auto-generated method stub
double l = (a + b + c) / 2;
double s = Math.sqrt(l * (l - a) * (l - b) * (l - c));
System.out.println("三角形的面积为:" + s);
}
}
package com.wdd.week03.day03.test03;
//正方形类
public class Square extends Rectangle{
public Square(double length) {
super(length);
// TODO Auto-generated constructor stub
}
@Override
public void area() {
// TODO Auto-generated method stub
System.out.println("正方形的面积为:" + (this.length) * this.length);
}
}
其他题目源码去workspace找,因为练习题简单不上传。
总结:
抽象类:比如动物类,形状类,菜类,水果类等
1.能设计成抽象类的类都是用来定义事物本质,其属性和方法都是定义是XXX的条件
(平时就思考当方法不好具体写实现时,就将该类设计成抽象类)
格式:public abstract class Animal{}
2.class被abstract所修饰的类叫做抽象类
3.抽象类可以有构造方法,但是没法new,可以被调用(非抽象子类实例化时)
4.抽象类可以有抽象方法,也可以有普通方法,但是普通类不能有抽象方法
5.有抽象方法的类一定是抽象类,抽象类不一定有抽象方法(常考)
6.抽象类关注点在属性
抽象方法:
当我们平时设计类时,一些方法无法给出具体的实现,就可以使用抽象方法
普通方法:[权限修饰符] [static] 返回值 方法名(参数列表){方法体}
抽象方法:[权限修饰符] [static] abstract 返回值 方法名(参数列表);
格式:public abstract void eat() ;
所以抽象方法就是用来定义规范的,抽象方法是必须要被非抽象子类重写的,否则毫无意义
static,final,abstract总结:
http://blog.csdn.net/qq_44543508/article/details/102691425
1.abstract和final能同时修饰一个类吗?
public abstract final class AA{}
不能:抽象类设计出来是一定要被继承
final不能被继承
2.final和static能同时修饰方法吗?
public static final void aaa(){}
可以
3.final和abstract可以同时修饰方法吗?
public abstract final void aaa(){}
不能:
4.static和abstract可以同时修饰一个方法吗?
public static abstract void aaa();
static 是用类名直接调用
abstract是没有方法体
直接调用一个没有方法体的方法,没有任何意思
5,static和final能同时修饰属性吗?
public static finl int a=1;
可以,是常量
static,final,abstract 总结链接:http://blog.csdn.net/qq_44543508/article/details/102691425 @宜春