【发布时间】:2015-03-28 23:12:47
【问题描述】:
我刚进入大学学习编程,他们给我的作业就像作业一样,用 Java 创建一个应用程序,而不是根据他们将收到的边识别不同类型的三角形。
我对此很好,但现在我正在尝试理解和编写调用其他方法并在 Bluej 之外显示结果的部分。
谁能给我最后一种方法并解释一下它是如何工作的?
我真的需要看一些实际的工作代码来了解如何以及何时从类中创建对象,以及如何将方法连接到这些方法。
控制台返回此错误: 不能从静态上下文中引用非静态变量库
更新: 现在返回我: '.class' 被考虑
在这部分代码中:
...
public static void main (int args[]){
Triangle obj1 = new *Triangle(int[]* args);
System.out.print(obj1.triangleCheck());
}
}
注意:“”之间的部分是显示错误存在的地方,“”不是实际代码本身的一部分。 注意 2: 在“更新”之后查看它以查看它的实际上下文。
另外,如果你们中的一些人告诉我如何改进我的代码也会很好,我是面向对象语言的新手。
这里是代码
import java.util.Scanner;
public class Triangle {
int base;
int ladoa;
int ladob;
String res = "";
public Triangle(int arg[]) {
Scanner Triangle = new Scanner( System.in );
System.out.println("Ingrese el tamaño de la Base del triángulo");
int base = Triangle.nextInt();
System.out.println("Ingrese el tamaño del lado A del triángulo");
int ladoa = Triangle.nextInt();
System.out.println("Ingrese el tamaño del lado B del triángulo");
int ladob = Triangle.nextInt();
}
public String triangleCheck(int base, int ladoa, int ladob) {
String baseb = Integer.toString(base);
String sidea = Integer.toString(ladoa);
String sideb = Integer.toString(ladob);
String var1 = "";
String var2 = "";
String var3 = "";
String var4 = "";
int lados=ladoa+ladob;
String ladoss = sidea + sideb;
if (base>=(ladoa+ladob)) {
if (lados==base) {
var1 = "Es un triángulo equilatero, pues sus lados y su base son todos iguales";
var2 = "Lado A + Lado B = " + ladoss;
var3 = "Base = " + baseb;
res = var1 + "\n" + var2 + "\n" + var3;
} else if (ladoa==ladob && lados < base || lados > base){
var1 = "Es un triánglo isósceles, pues dos de sus lados son iguales y su base es diferente";
var2 = "Lado A = " + ladoss;
var3 = "Lado B = " + ladoss;
var4 = "Base = " + baseb;
res = var1 + "\n" + var2 + "\n" + var3 + "\n" + var4;
} else if (ladoa > ladob || ladoa < ladob) {
var1 = "Es un triángulo escaleno, pues sus lados y la base son distintas";
var2 = "Lado A = " + ladoss;
var3 = "Lado B = " + ladoss;
var4 = "Base = " + baseb;
res = var1 + "\n" + var2 + "\n" + var3 + "\n" + var4;
} else {
var1 = "Eso no es un triángulo, pues los lados de un triángulo, no pueden ser sumados menores a la base";
res = var1;
}
} else {
res = "Eso no es un triángulo, pues los lados de un triángulo, no pueden ser sumados menores a la base";
}
return res;
}
public static void main (int args[]){
Triangle obj1 = new Triangle(base, ladoa, ladob);
System.out.print(obj1.triangleCheck());
}
}
更新:
import java.util.Scanner;
public class Triangle {
static int base;
static int ladoa;
static int ladob;
String res = "";
public Triangle(int arg[]) {
Scanner Triangle = new Scanner( System.in );
System.out.println("Ingrese el tamaño de la Base del triángulo");
int base = Triangle.nextInt();
System.out.println("Ingrese el tamaño del lado A del triángulo");
int ladoa = Triangle.nextInt();
System.out.println("Ingrese el tamaño del lado B del triángulo");
int ladob = Triangle.nextInt();
}
public String triangleCheck(int base, int ladoa, int ladob) {
String baseb = Integer.toString(base);
String sidea = Integer.toString(ladoa);
String sideb = Integer.toString(ladob);
String var1 = "";
String var2 = "";
String var3 = "";
String var4 = "";
int lados=ladoa+ladob;
String ladoss = sidea + sideb;
if (base>=(ladoa+ladob)) {
if (lados==base) {
var1 = "Es un triángulo equilatero, pues sus lados y su base son todos iguales";
var2 = "Lado A + Lado B = " + ladoss;
var3 = "Base = " + baseb;
res = var1 + "\n" + var2 + "\n" + var3;
} else if (ladoa==ladob && lados < base || lados > base){
var1 = "Es un triánglo isósceles, pues dos de sus lados son iguales y su base es diferente";
var2 = "Lado A = " + ladoss;
var3 = "Lado B = " + ladoss;
var4 = "Base = " + baseb;
res = var1 + "\n" + var2 + "\n" + var3 + "\n" + var4;
} else if (ladoa > ladob || ladoa < ladob) {
var1 = "Es un triángulo escaleno, pues sus lados y la base son distintas";
var2 = "Lado A = " + ladoss;
var3 = "Lado B = " + ladoss;
var4 = "Base = " + baseb;
res = var1 + "\n" + var2 + "\n" + var3 + "\n" + var4;
} else {
var1 = "Eso no es un triángulo, pues los lados de un triángulo, no pueden ser sumados menores a la base";
var2 = "";
var3 = "";
var4 = "";
res = var1;
}
} else {
res = "Eso no es un triángulo, pues los lados de un triángulo, no pueden ser sumados menores a la base";
}
return res;
}
public static void main (int args[]){
Triangle obj1 = new Triangle(int[] args);
System.out.print(obj1.triangleCheck());
}
}
除了改进问题之外,任何建议、想法、评论或其他东西都会非常受欢迎
提前致谢
【问题讨论】:
-
尝试将您的扫描仪命名为 Triangle 以外的其他名称,因为您已经创建了一个名为 Triangle 的类
-
还有,String var1 = "";字符串 var2 = "";字符串 var3 = "";字符串 var4 = "";是不必要的。您可以乘坐 =“”