《Java程序设计》实验3
一、本次实验主要考查以下知识点:
(1)面向对象的类和对象
(2)成员变量的访问方法(getter)和修改方法(setter)
(3)成员方法定义
(4)构造方法
二、实验题目(使用Java语言编程)
1、定一个名为Person的类,其中含有一个String类型的成员变量name和一个int类型的成员变量age,
分别为这两个变量定义访问方法和修改方法,另外再为该类定义一个名为speak的方法,
在其中输出name和age的值。编写一应用程序,使用上面定义的Person类,实现数据的访问、修改。
public class Person {
String name;
int 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 speak() {
System.out.println("姓名:"+name+" 年龄:"+age);
}
}
//测试类
public class PersonTest {
public static void main(String[] args) {
Person p = new Person();
p.setName("张三");
p.setAge(20);
p.speak();
}
}
2、定义一个名为Rectangle的类表示矩形,其中含有length、width两个double型的成员变量表示矩形的长和宽。要求为每个变量定义访问方法和修改方法,定义求矩形周长的方法perimeter()和求面积的方法area()。 编写一个类测试这个矩形类。
public class Rectangle {
double length;
double width;
public double getLength() {
return length;
}
public void setLength(double length) {
this.length = length;
}
public double getWidth() {
return width;
}
public void setWidth(double width) {
this.width = width;
}
public void perimeter() {
System.out.println(2 * (length + width));
}
public void area() {
System.out.println(length * width);
}
}
//测试类
public class RectangleTest {
public static void main(String[] args) {
Rectangle r = new Rectangle();
r.setLength(3);
r.setWidth(4);
r.perimeter();
r.area();
}
}
3、为上题(第2题)的Rectangle类编写一个带参数的构造方法,通过用户给出的长、宽创建矩形对象,再编写一个默认构造方法(无参构造方法),使用默认构造方法创建矩形对象,然后通过setter方法为对象属性赋值。编写一个类测试这个矩形类。
public class Rectangle {
double length;
double width;
public Rectangle() {
System.out.println("构造函数");
}
public Rectangle(double length,double width) {
this.length = length;
this.width = width;
System.out.println("带参数构造");
}
public void setter() {
System.out.println(2 * (length + width));
System.out.println(length * width);
}
public double getLength() {
return length;
}
public void setLength(double length) {
this.length = length;
}
public double getWidth() {
return width;
}
public void setWidth(double width) {
this.width = width;
}
public void perimeter() {
System.out.println(2 * (length + width));
}
public void area() {
System.out.println(length * width);
}
}
package com.tjrac.test;
public class RectangleTest {
public static void main(String[] args) {
Rectangle r = new Rectangle(2.2,3.5);
r.setter();
}
}
4、定义一个Triangle类表示三角形,其中包括3个double型变量a、b、c,用于表示3条边长。为该类定义两个构造方法:默认构造方法(无参构造方法)设置三角形的3条边长都为0.0;带3个参数的构造方法通过传递3个参数创建三角形对象。定义求三角形面积的方法area(),面积计算公式为:area=Math.sqrt(s*(s-a)(s-b)(s-c)),其中s=(a+b+c)/2。编写程序测试该类。
public class Triangle {
double a,b,c;
public Triangle() {
a = 0.0;
b = 0.0;
c = 0.0;
}
public Triangle(double x,double y,double z) {
a = x;
b = y;
c = z;
}
public double area() {
double s = (a + b + c) / 2;
return Math.sqrt(s * (s - a) * (s - b) * (s - c));
}
}
public class TriangleTest {
public static void main(String[] args) {
Triangle t = new Triangle();
Triangle t1 = new Triangle(3,4,5);
System.out.println(t1.area());
}
}
5、定义一个表示二维平面上的点Point类,并在该类中定义一个计算两点之间距离的方法,其格式如下:public double getDistance(Point p)编写一个类测试这个Point类。
public class Point {
double x;
double y;
public Point() {
x = 0;
y = 0;
}
public void setXY(double a,double b) {
this.x = a;
this.y = b;
}
public double getDistance(Point p) {
return Math.sqrt((Math.pow((this.x-p.x), 2) + Math.pow((this.y-p.y), 2)));
}
}
public class PointTest {
public static void main(String[] args) {
Point p = new Point();
Point p1 = new Point();
p.setXY(1, 1);
p1.setXY(1, 2);
System.out.println("两点之间的距离为:"+p1.getDistance(p));
}
}