实验3

《Java程序设计》实验3
一、本次实验主要考查以下知识点:
(1)面向对象的类和对象
(2)成员变量的访问方法(getter)和修改方法(setter)
(3)成员方法定义
(4)构造方法
二、实验题目(使用Java语言编程)
• 1、定一个名为Person的类,其中含有一个String类型的成员变量name和一个int类型的成员变量age, 分别为这两个变量定义访问方法和修改方法,另外再为该类定义一个名为speak的方法, 在其中输出name和age的值。编写一应用程序,使用上面定义的Person类,实现数据的访问、修改。
Main.java

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入姓名:");
        String name = sc.next();
        System.out.println("请输入年龄:");
        int age = sc.nextInt();
        Person person = new Person();
        person.setName(name);
        person.setAge(age);
        person.speak();
    }
}

Person.java

import javax.sound.midi.Soundbank;

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);
        System.out.println("年龄:" + age);
    }
}

image

• 2、定义一个名为Rectangle的类表示矩形,其中含有length、width两个double型的成员变量表示矩形的长和宽。 要求为每个变量定义访问方法和修改方法,定义求矩形周长的方法perimeter()和求面积的方法area()。 编写一个类测试这个矩形类。
Test.java

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        double length, width;
        System.out.println("请输入矩形的长:");
        length = sc.nextDouble();
        System.out.println("请输入矩形的宽:");
        width = sc.nextDouble();
        Rectangle rectangle = new Rectangle();
        rectangle.setLength(length);
        rectangle.setWidth(width);
        System.out.println("矩形的周长:" + rectangle.perimeter());
        System.out.println("矩形的面积:" + rectangle.area());
    }
}

Rectangle.java

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 double perimeter() {
        return (2 * (length + width));
    }
    public double area() {
        return length * width;
    }
}

image

• 3、为上题(第2题)的Rectangle类编写一个带参数的构造方法,通过用户给出的长、宽创建矩形对象, 再编写一个默认构造方法(无参构造方法),使用默认构造方法创建矩形对象,然后通过setter方法为对象属性赋值。编写一个类测试这个矩形类。
Test.java

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        double length, width;
        System.out.println("请输入矩形的长:");
        length = sc.nextDouble();
        System.out.println("请输入矩形的宽:");
        width = sc.nextDouble();
        Rectangle rectangle = new Rectangle();
        System.out.println("矩形的周长:" + rectangle.perimeter(length, width));
        System.out.println("矩形的面积:" + rectangle.area(length, width));
    }
}

Rectangle.java

public class Rectangle {
    public Rectangle () {
        double length;
        double width;
    }
    public double perimeter(double length, double width) {
        return (2 * (length + width));
    }
    public double area(double length, double width) {
        return length * width;
    }
}

image

• 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。编写程序测试该类。
Test.java

public class Test {
    public static void main(String[] args) {
        Triangle tri1 = new Triangle(3.0, 4.0, 5.0);
        System.out.println("tri1 area:" + tri1.area());
        Triangle tri2 = new Triangle();
        tri2.setA(5.0);
        tri2.setB(12.0);
        tri2.setC(13.0);
        System.out.println("tri2 area:" + tri2.area());
    }
}

Triangle.java

public class Triangle {
    double a, b, c;
    public Triangle() {
        this.a = 0.0;
        this.b = 0.0;
        this.c = 0.0;
    }
    public Triangle(double a, double b, double c) {
        this.a = a;
        this.b = b;
        this.c = c;
    }
   public double area() {
        double s = (a + b + c) / 2;
        double area = Math.sqrt(s * (s - a) * (s - b) * (s - c));
        return area;
   }
    public double getA() {
        return a;
    }
    public void setA(double a) {
        this.a = a;
    }
    public double getB() {
        return b;
    }
    public void setB(double b) {
        this.b = b;
    }
    public double getC() {
        return c;
    }
    public void setC(double c) {
        this.c = c;
    }
}

image

• 5、定义一个表示二维平面上的点Point类,并在该类中定义一个计算两点之间距离的方法,其格式如下:
• public double getDistance(Point p)
编写一个类测试这个Point类。
Test.java

public class Test {
    public static void main(String[] args) {
        Point p1 = new Point(1.0, 2.0);
        Point p2 = new Point(2.0, 3.0);
        System.out.println("Distance between p1 and p2: " + p1.getDistance(p2));
    }
}

Point.java

public class Point {
    double x, y;
    public Point(double x, double y) {
        this.x = x;
        this.y = y;
    }
    public double getX() {
        return x;
    }
    public void setX(double x) {
        this.x = x;
    }
    public double getY() {
        return y;
    }
    public void setY(double y) {
        this.y = y;
    }
    public double getDistance(Point p) {
        double dx = this.x - p.x;
        double dy = this.y - p.y;
        double dist = Math.sqrt(dx * dx + dy * dy);
        return dist;
    }
}

image

posted on 2023-08-22 14:58  逆袭怪  阅读(12)  评论(0编辑  收藏  举报