你能用Java描述一个正方形吗
时间: 2024-03-20 20:43:23 浏览: 13
可以的,Java描述正方形的代码如下:
```java
public class Square {
private int side;
public Square(int side) {
this.side = side;
}
public int getSide() {
return side;
}
public void setSide(int side) {
this.side = side;
}
public int getArea() {
return side * side;
}
public int getPerimeter() {
return 4 * side;
}
}
```
在这里,我们定义了一个类 `Square` 来表示正方形,其中包含属性 `side` 表示正方形的边长。我们还定义了 `getArea()` 方法来计算正方形的面积,`getPerimeter()` 方法来计算正方形的周长。
相关问题
设计一个名为Square的正方形类。该类包括: (1)一个名为side的double成员变量,表示这个正方形的边长。 (2)一个无参构造方法,将正方形的边长设置为默认值1.0。 (3)一个带参数的构造方法,参数列表为“double side”,用这个参数的值初始化正方形的边长。 (4)成员变量side的get方法和set方法。 (5)一个名为getArea()的方法返回这个正方形的面积。 (6) 一个名为toString()的方法返回这个正方形的字符串描述。如边长分别为1.0,则返回字符串“Square: side=1.0 area=1.0”。 (7)设计一个测试程序,输入边长x,输出正方形的描述。如输入为3.0,则输出为:Square: side=3.0 area=9.0 所有的成员变量都为私有变量,所有的成员方法都为公共方法。 运行该程序,当输入10时,输出为: Square: side=10.0 area=100.0 根据设计要求用Java语言编写程序
以下是Square类的Java代码:
```
public class Square {
private double side;
public Square() {
this.side = 1.0;
}
public Square(double side) {
this.side = side;
}
public double getSide() {
return side;
}
public void setSide(double side) {
this.side = side;
}
public double getArea() {
return side * side;
}
public String toString() {
return "Square: side=" + side + " area=" + getArea();
}
public static void main(String[] args) {
double x = 10.0;
Square square = new Square(x);
System.out.println(square.toString());
}
}
```
当输入10时,输出为:
```
Square: side=10.0 area=100.0
```
有n个巧克力,所有的巧克力都是厚度一样的正方形的巧克力板,这n个巧克力板的边长分别为a1 ,a2,……an,因为都是厚度一致的正方形巧克力板,我们认为第i个巧克力的重量为ai 的平方,我现在准备挑选一个合适大小的包来装尽可能多的巧克力板,输入描述:第一行两个整数n和m,表示巧克力数量和询问数量,第二行n个整数a1 ,a2……..an,表示n块正方形巧克力板的边长,第三行m个整数q1,q2,….qm,第i个整数qi表示询问:如果我选择一个能装qi重量的包,最多能装多少块巧克力板?输出描述:输出一行m个整数,分别表示每次询问的答案。请写出这道算法题目的Java 代码
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
int[] chocolate = new int[n];
for (int i = 0; i < n; i++) {
chocolate[i] = sc.nextInt();
}
Arrays.sort(chocolate); // 排序
int[] sum = new int[n];
sum[0] = chocolate[0] * chocolate[0]; // 计算前缀和
for (int i = 1; i < n; i++) {
sum[i] = sum[i - 1] + chocolate[i] * chocolate[i];
}
for (int i = 0; i < m; i++) {
int q = sc.nextInt();
int l = 0, r = n - 1, ans = 0;
while (l <= r) { // 二分查找
int mid = (l + r) / 2;
if (sum[mid] <= q) {
ans = mid + 1;
l = mid + 1;
} else {
r = mid - 1;
}
}
System.out.println(ans);
}
}
}