实验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);
}
}
• 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;
}
}
• 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;
}
}
• 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;
}
}
• 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;
}
}
本文来自博客园,作者:逆袭怪,转载请注明原文链接:https://www.cnblogs.com/fghjktgbijn/p/17648352.html