《Java程序设计》实验3 - 面向对象的类和对象、成员变量的访问方法、修改方法、构造方法

《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));
	}
}

猜你喜欢

转载自blog.csdn.net/mercury8124/article/details/129251944