实验二 类定义和对象使用
1.定义一个描述人的Person类,该类就有
- 描述人属性:姓名、年龄、性别;
- 用来对属性初始化的构造方法(要体现构造方法重载);
- 用户获取属性值的getter方法和用于修改属性值的setter方法;
- 返回所有成员信息的toString()方法;
- 然后定义测试类TestPerson(只包含main方法的公有类,下同),创建Person对象调用其相应的方法。
package Work2;
public class TestPeople {
public static void main(String[] args) {
Person test = new Person();
test.allData();//输出默认全部信息
System.out.println("------default-----");
//单独输出
System.out.println(test.getName());
System.out.println(test.getAge());
System.out.println(test.getSex());
//构造方法重载
System.out.println("-------Eve------");
test.allData("Eve","男",30);
//改变信息
System.out.println("------Beta-----");
test.setName("Beta");
test.setAge(20);
test.setSex("女");
test.allData();
}
//创建Person类
static class Person{
//属性
private String name;//姓名
private String sex="男";//性别
private int age=18;//年龄
public String getName() {//获取名字
return name;
}
public void setName(String name1) {//更改名字
name = name1;
}
public String getSex() {//获取性别
return sex;
}
public void setSex(String sex1) {//更改性别
sex = sex1;
}
public int getAge() {//获取年龄
return age;
}
public void setAge(int age1) {//更改年龄
age = age1;
}
public void allData(String name, String sex, int age) {
System.out.println("姓名为:"+name+"年龄为:"+age+"性别为:"+sex);
}
public void allData() {
System.out.println("姓名为:"+name+"年龄为:"+age+"性别为:"+sex);
}
}
}
2.定义一个长方体Cuboid类,该类具有
- 表示长方体的属性
- 用来对属性初始化的构造方法(要体现构造方法重载)
- 具有计算长方体表面积和体积的功能。
- 定义测试类TestCubiod,创建Cuboid对象调用其相应的方法。
package Work2;
public class TestCubiod {
public static void main(String[] args) {
Cubiod cube = new Cubiod();
System.out.println("-------默认-------");
System.out.println(cube.getV());//输出体积
System.out.println(cube.getS());//输出面积
System.out.println("-------初始化(归零)-------");
cube.setDefault();
System.out.println(cube.getV());//输出体积
System.out.println(cube.getS());//输出面积
System.out.println("-------初始化(改指定值)-------");
cube.setDefault(10,10,10);
System.out.println(cube.getV());//输出体积
System.out.println(cube.getS());//输出面积
}
static class Cubiod{
private int lenth=3;
private int width=2;
private int height=4;
public void setDefault(){
lenth = 0;
width = 0;
height = 0;
}
public void setDefault(int l,int w,int h){
lenth = l;
width = w;
height = h;
}
public int getV(){
return lenth*width*height;
}
public int getS(){
return 2 * (lenth*width + lenth*height + width*height);
}
}
}
3.定义一个表示一元二次方程ax^2+bx+c=0的QuadraticEquation类。该类包括
- 表示三个系统的私有成员变量a、b、c;
- 用于a、b、c的赋值的构造方法;
- 用于获得或设置a、b、c的getter方法和setter方法;
- 用于返回判别式(b^2-4ac)的值的方法getDiscriminant();
- 用于获取方程根的方法(该方法可以返回的根包括无解、一个解和两个解三种情况)。
- 然后定义测试类TestQuadEquation,创建QuadraticEquation对象调用其相应的方法。
package Work2;
public class TestQuadEquation {
public static void main(String[] args) {
QuadEquation A = new QuadEquation();
System.out.println("-----第一次测试-----");
A.setEquation(1,-7,12);//两个解:3和4
//查询此时a,b,c的值:
System.out.println("a,b,c分别为:"+A.getA()+" "+A.getB()+" "+A.getC());
System.out.println("判别式:" + A.getDiscriminant());
A.getRoot();
System.out.println("-----第二次测试-----");
A.setB(-2);
A.setC(1);//此时有唯一解:1
System.out.println("判别式:" + A.getDiscriminant());
A.getRoot();
System.out.println("-----第三次测试-----");
A.setB(1);//此时无解
System.out.println("判别式:" + A.getDiscriminant());
A.getRoot();
}
static class QuadEquation{
private int a;
private int b;
private int c;
//初始赋值
public void setEquation(int aa, int bb, int cc){
a = aa;
b = bb;
c = cc;
}
//a的获取及设置
public int getA() {
return a;
}
public void setA(int a) {
this.a = a;
}
//b的获取及设置
public int getB() {
return b;
}
public void setB(int b) {
this.b = b;
}
//c的获取及设置
public int getC() {
return c;
}
public void setC(int c) {
this.c = c;
}
//返回德尔塔
public double getDiscriminant() {
return b*b - 4*a*c;
}
public void getRoot() {
double m = b*b - 4*a*c;
if (m > 0) {
double root1=(-b+Math.sqrt(b*b-4*a*c))/(2*a);
double root2=(-b-Math.sqrt(b*b-4*a*c))/(2*a);
System.out.println("方程的两个根为:"+root1+";"+root2);
}else if(m == 0){
double root=(-b-Math.sqrt(b*b-4*a*c))/(2*a);
System.out.println("方程的根为:"+root);
}else{
System.out.println("方程无解");
}
}
}
}
4.定义表示二维空间点的Point类,该类包括:
- 表示点的属性;
- 用于对属性初始化的构造方法(要实现重载);
- 获取和修改属性的getter和setter方法;
- 返回以(x,y)格式表示点坐标的toString()方法;
- 实现计算两点之间距离的方法。
- 然后定义测试类TestPoint,创建Point对象调用其相应的方法。
package Work2;
import static java.lang.Math.*;
public class TestPoint {
public static void main(String[] args) {
Point p = new Point();
Point o = new Point();
p.setXY(2,3);
o.setXY();//把o设为原点。
System.out.println("p的x坐标与y坐标为:"+p.getX()+" "+p.getY());
System.out.println("o的x坐标与y坐标为:"+o.getX()+" "+o.getY());
p.setX(3);
p.setY(4);
System.out.println("更改后p的x坐标与y坐标为:"+p.getX()+" "+p.getY());
System.out.println("p坐标为"+p.toString());//输出坐标
//System.out.println("p坐标为"+p); 两种写法是等价的,为什么?
System.out.println("p到o的距离为"+p.getDistance(o));
}
static class Point{
private int x = 0;
private int y = 0;
//初始化赋值
public void setXY(int xx, int yy){
x = xx;
y = yy;
}
//初始化归零
public void setXY(){
x = 0;
y = 0;
}
//y的获取及设置
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
//y的获取及设置
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
@Override //这是什么?
public String toString() {
return "Point(" +
+ x +
","+ y +
')';
}
public double getDistance(Point b){
double s;
s = sqrt(pow(this.x-b.x,2)+ pow(this.y-b.y,2));
return s;
}
}
}
原文地址:http://www.cnblogs.com/nekodream/p/16796457.html
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,请务用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员!
8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性