今天是两个实验任务:
1、
实验要求:编写程序定义圆类Circle,把圆的性质和行为用代码块封装起来。圆的性质包括圆的半径和圆心坐标,行为包括计算圆面积,计算圆周长,设置半径,获取半径。实例化若干个圆对象,调用相应方法计算出圆面积与周长。
知识点:
(1)类的定义,抽象出类属性,方法封装类;
(2)类体定义,了解方法构造的意义和作用,方法重载,成员变量和其方法的声明和定义;
(3)对象实例化,各种方法的定义和调用;
(4)final关键字声明符号常量;
代码如下:
public class Circle {
private double radius;
private double x,y;
private static int num;
private static final double PI=3.14159;
public Circle()
{
num++;
}
public Circle(double r) throws Exception
{
if(r<0)
{
throw new Exception("圆半径不能为负数");
}
else
{
radius=r;
num++;
}
}
public double getRadius()
{
return radius;
}
public void setRadius(double r) throws Exception
{
if(r<0)
{
throw new Exception("圆半径不能为负数");
}
else
{
radius=r;
}
}
public static int getNum()
{
return num;
}
public double calcArea()
{
return PI*radius*radius;
}
public double calcGirth()
{
return 2*PI*radius;
}
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
Circle c1=new Circle(3.5);
System.out.println("圆1半径"+c1.getRadius()+",圆1面积"+c1.calcArea()+",圆1周长"+c1.calcGirth());
System.out.println("目前圆对象个数为"+c1.getNum());
Circle c2=new Circle(10);
System.out.println("圆2半径"+c2.getRadius()+",圆2面积"+c2.calcArea()+",圆2周长"+c2.calcGirth());
System.out.println("目前圆对象个数为"+c2.getNum());
Circle c3=new Circle();
System.out.println("圆3半径"+c3.getRadius()+",圆3面积"+c3.calcArea()+",圆3周长"+c3.calcGirth());
System.out.println("目前圆对象个数为"+c3.getNum());
}
}运行结果可以看到:

2
变成实现类的继承。编写父类People,子类Student继承自People。人类具有姓名,性别,年龄等属性,还具有吃和说的行为。学生类继承父亲类,除继承父类特征外还拥有学号属性和学习行为。构造人类和学生类的对象,调出方法输出信息。
package ext;
public class People {
private String name;
private int age;
public People()
{
}
public People(String name, int age)
{
this.name=name;
this.age=age;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name=name;
}
public int getAge()
{
return age;
}
public void setAge(int age)
{
this.age=age;
}
public void eat()
{
System.out.println(name+"在吃饭");
}
public void speak()
{
System.out.println(name+"在说话");
}
}
package ext;
class Student extends People {
private String stuNo;
public Student()
{
}
public Student(String stuNo, String name, int age)
{
super(name,age);
this.stuNo=stuNo;
}
public String getStuNo()
{
return stuNo;
}
public void setStuNo(String stuNo)
{
this.stuNo=stuNo;
}
public void learn()
{
System.out.println(super.getName()+"在学习");
}
public static void main(String[] args) {
// TODO Auto-generated method stub
People p=new People("王浩宇",30);
p.eat();
p.speak();
System.out.println();
Student stu=new Student("001","秦岭",20);
stu.eat();
stu.speak();
stu.learn();
}
}结果我们可以看到:

后期会对各个代码进行完善,哈哈,先发布。

被折叠的 条评论
为什么被折叠?



