我正致力于在面向对象编程的程序中使用单独的类。警告:我在OOP很讨厌,所以如果我的问题是愚蠢和荒谬的,请告诉我,或者,如果你知道我的意思,编辑我的帖子。
*相同,如
public class filename
{
// ... content
}
class name
{
}示例:
public class TestSimpleCircle {
public static void main(String[] args {
SimpleCircle circle1 = new SimpleCircle();
System.out.println("The area of the circle of radius " + circle1.radius + " is " + circle1.getArea());
// Create a circle with radius 25
SimpleCircle circle2 = new SimpleCircle(25); System.out.println("The area of the circle of radius " + circle2.radius + " is " + circle2.getArea());
// Create a circle with radius 125
SimpleCircle circle3 = new SimpleCircle(125); System.out.println("The area of the circle of radius " + circle3.radius + " is " + circle3.getArea());
// Modify circle radius
circle2.radius = 100; // or circle2.setRadius(100) System.out.println("The area of the circle of radius " + circle2.radius + " is " + circle2.getArea());
}
}
class SimpleCircle {
double radius;
SimpleCircle() {
radius = 1;
}
SimpleCircle(double newRadius) {
radius = newRadius;
}
double getArea() {
return radius * radius * Math.PI;
}
double getPerimeter() {
return 2 * radius * Math.PI;
}
void setRadius(double newRadius) {
radius = newRadius;
}
}...that (例如圆环1.getArea())?
发布于 2017-08-18 18:56:42
您会在单独的.java文件或相同的*中创建单独的类和程序本身吗?
Every class in Java should be in its own file,但是可以在一个文件中创建多个类。例如
class A{
public A(){
System.out.println("A created");
}
}
public class Main {
public static void main(String[] args) {
A x = new A();
}
}您可以在单独的类中使用Scanner,还是应该在main()方法中使用它?如果是这样的话,是怎么做的?
取决于你的申请。很多人更喜欢组织和分离,所以最好的建议是在自己的类中做到这一点。但是对于非常简单的示例和应用程序,我只是将其抛到main()方法中,或者如果我只在任何方法中使用一次的话。扫描器本身就是类,所以如果您只创建另一个类来单独包装它,那么它实际上根本不值得。
您可以创建Scanner作为任何类的成员变量,并使用它如果有一些方法您将使用它。
这些只是一些想法,完全取决于您的设计、应用行为和个人推荐。
至于怎么做,下面是一个例子
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter a number");
int number = sc.nextInt();
System.out.println("You entered number " + number);
}
}假设必须在main()方法中使用Scanner,然后声明一个新的变量输入并将其初始化为Scanner输入。您将如何将其设置为单独类中的一个变量?你能做个新的东西然后做..。
是的,我将创建该类的新对象,并使用输入值初始化其成员。或者,我将扫描器放入类中,以询问使用构造函数创建的每个不带参数的对象的半径。有许多不同的方法,它们中的任何一个都没有对错。尽量避免重复和依赖。
下面是用示例编辑的代码,以便
import java.util.Scanner;
public class TestSimpleCircle {
public static void main(String[] args) {
System.out.println("Enter radius of your choice please");
Scanner sc = new Scanner(System.in);
SimpleCircle circle1 = new SimpleCircle(sc.nextInt()); // taking the radius as input
System.out.println("The area of the circle of radius " + circle1.radius + " is " + circle1.getArea());
// Create a circle with radius 25
SimpleCircle circle2 = new SimpleCircle(25);
System.out.println("The area of the circle of radius " + circle2.radius + " is " + circle2.getArea());
// Create a circle with radius 125
SimpleCircle circle3 = new SimpleCircle(125);
System.out.println("The area of the circle of radius " + circle3.radius + " is " + circle3.getArea());
// Modify circle radius
circle2.radius = 100;
System.out.println("The area of the circle of radius " + circle2.radius + " is " + circle2.getArea());
}
}
class SimpleCircle {
double radius;
SimpleCircle() {
radius = 1;
}
SimpleCircle(double newRadius) {
radius = newRadius;
}
double getArea() {
return radius * radius * Math.PI;
}
double getPerimeter() {
return 2 * radius * Math.PI;
}
void setRadius(double newRadius) {
radius = newRadius;
}
}发布于 2017-08-18 18:53:08
扫描仪就像任何其他对象一样,可以通过引用传递到另一个方法/类中,并且仍然可以使用。
还可以创建和使用扫描仪类的不同实例。
你会在你需要它的任何类中使用扫描仪。如果创建对象的新实例,它将不会与其他实例连接。这个问题并不是针对Scanner的,而是一般的java对象。
发布于 2017-08-18 19:12:34
第一个问题。是的,您可以在同一个java文件中创建不同的类,在编译java文件之后,将为您定义的每个类创建单独的.class文件。
我想提到的是,如果任何类被声明为公共类(如上面示例中的it.but公共类文件名),您可以按任何名称保存java文件,然后编译java文件,那么java文件的名称应该与公共类的名称相同。
如果不做,so.You会收到编译时错误的信息:类文件名是公共的,应该在名为文件名的文件中声明。
希望这能帮你一点..。
https://stackoverflow.com/questions/45763037
复制相似问题