编程初学者入门训练-KiKi设计类继承
目录
- KiKi定义电子日历类
- KiKi设计类继承
1.题目描述
KiKi学习了面向对象技术,学会了通过封装属性(变量)和行为(函数)定义类,现在他要设计一个电子日历类TDate。
它有3个私有数据成员:Month,Day,Year和若干个公有成员函数,要求:
(1)带有默认形参值的构造函数,默认值为0, 0, 0;
(2)输出日期函数,用“日/月/年”格式输出日期;
(3)设置日期函数,从键盘输入年、月、日。
1.1输入描述
一行,三个整数,用空格分隔,分别表示年、月、日。
1.2输出描述
一行,用“日/月/年”格式输出日期。
1.3示例1
输入
2019 12 30
输出
30/12/2019
1.4代码实现
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
class TData{
private int Year;
private int Month;
private int Day;
public TData(){
this.Year = 0;
this.Month = 0;
this.Day = 0;
}
public TData(int Year, int Month, int Day){
System.out.println(Day+"/"+Month+"/"+Year);
}
}
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
String[] strs = bf.readLine().split(" ");
int[] arr = new int[3];
for(int i=0;i<arr.length;i++){
arr[i] = Integer.parseInt(strs[i]);
}
TData example = new TData(arr[0],arr[1],arr[2]);
}
}
2.题目描述
KiKi理解了继承可以让代码重用,他现在定义一个基类shape,私有数据为坐标点x,y, 由它派生Rectangle类和Circle类,它们都有成员函数GetArea()求面积。派生类Rectangle类有数据:矩形的长和宽;派生类Circle类有数据:圆的半径。Rectangle类又派生正方形Square类,定义各类并测试。输入三组数据,分别是矩形的长和宽、圆的半径、正方形的边长,输出三组数据,分别是矩形、圆、正方形的面积。圆周率按3.14计算。
2.1输入描述
输入三行,
第一行为矩形的长和宽,
第二行为圆的半径,
第三行为正方形的边长。
2.2输出描述
三行,分别是矩形、圆、正方形的面积。
2.3示例1
输入
7 8
10
5
输出
56
314
25
2.4代码实现
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
class shape{
private int x;
private int y;
public Object GetArea(){
return x*y;
}
}
class Rectangle extends shape{
private int r_length;
private int r_width;
public Rectangle(int r_length,int r_width){
this.r_length = r_length;
this.r_width = r_width;
}
public Object GetArea(){
return r_length*r_width;
}
}
class Circle extends shape{
private int c_radius;
public Circle(int c_radius){
this.c_radius = c_radius;
}
public Object GetArea(){
double a = 3.14*Math.pow(c_radius,2);
int b = (int) a;
if(b==a) {
return b;
}else {
return a;
}
}
}
class Square extends Rectangle{
public Square(int s_length){
super(s_length,s_length);
}
}
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
String[] strs = bf.readLine().split(" ");
int r_length = Integer.parseInt(strs[0]);//矩形的长
int r_width = Integer.parseInt(strs[1]);//矩形的宽
int c_radius = Integer.parseInt(bf.readLine());//圆的半径
int s_length = Integer.parseInt(bf.readLine());//正方形边长
shape r = new Rectangle(r_length,r_width);
shape c = new Circle(c_radius);
shape s = new Square(s_length);
System.out.println(r.GetArea());
System.out.println(c.GetArea());
System.out.println(s.GetArea());
}
}