Java “如何调试”;“表达式开头非法”;在爪哇?
在Jcreator中,这里有12个错误,我不知道如何修复它。上面写着“非法启动expr…” 如果我改变了什么,突然间,又多了50个错误Java “如何调试”;“表达式开头非法”;在爪哇?,java,swing,compiler-errors,Java,Swing,Compiler Errors,在Jcreator中,这里有12个错误,我不知道如何修复它。上面写着“非法启动expr…” 如果我改变了什么,突然间,又多了50个错误 public class Practica_figura { Class Figura() { private float base; private float altura; private float radio; } public void asignar(float ba, fl
public class Practica_figura {
Class Figura() {
private float base;
private float altura;
private float radio;
}
public void asignar(float ba, float al, float ra) {
base = ba;
altura = al;
radio = ra;
}
class Cuadrado extends Figura()
{
private float base;
private float altura;
public void calcular_area(float b, float a) {
float res = base * altura;
}
public void calcular_perimetro(float a) {
float resp = 4 * a;
}
public void rareac() {
return area;
}
public void rperic() {
return perimetro;
}
}
class Triangulo extends Figura()
{
private float base;
private float altura;
private float la;
private float lb;
private float lc;
public void asignar(float a, float b, float c) {
la = a;
lb = b;
lc = c;
}
public void calcular_area(float b, float a) {
float res = (base * altura) / 2;
}
public void calcular_perimetro(float a) {
float resp = 4 * a;
}
public void rareat() {
return area;
}
public void rperit() {
return perimetro;
}
}
public static void main(String[] args) {
// TODO code application logic here
float base = 0, altura = 0, radio = 0;
JOptionPane.showMessageDialog(null, "Programa para calcular área y perímetro");
}
}
首先,类的定义不太正确
public class Practica_figura
{
private float base;
private float altura;
private float radio;
public Practica_figura()
{
}
public void asignar(float ba, float al, float ra)
{
base = ba;
altura = al;
radio = ra;
}
//edits assuming you want inner classes
class Figura
{
private float base, altura, radio;
// you will need getters/setters for the variables
}
class Cuadrado extends Figura
{
// insert class logic here
}
class Triangulo extends Figura
{
// insert class logic here
}
}
其次,您在子类中隐藏变量,这种方法可能会使事情变得混乱。要更改正确的类定义
public class Practica_figura{class figura(){
到
公共类图形{
我真的不明白您想做什么,如果您想要的是一个构造函数,那么您必须添加:
public Figura(){
}
如果类名是Practica\u figura,那么构造函数必须是Practical\u figura,并且它没有“类”在它前面。确实不清楚您想要实现什么。正如我和@Samzerge所指出的,您的基类定义很奇怪。但是,假设目标是一个Practica_figura类,它有内部类figura、Cuadrado和Triangulo,那么您需要按照我上面所做的编辑进行操作。但是,您没有提供任何Figura类中的getter/setter,因此base、altura和radio将是无用的。Practica_Figura中的方法asignar无法访问Figura类中的私有变量。您正在子类中隐藏变量。“隐藏变量”是什么意思?问题是:“类square、circle和triangle必须计算面积和周长,然后将该功能放在一个通用类中是有意义的,如图所示。实现此功能。”oviously using Inheritance我没有将您的所有代码复制到答案中。但是,在您问题的代码中,您有“float base”“在Figura类中。您的Cuadrado类中也有float base。现在,这有点错误,因为它们是私有的,所以在技术上它们没有阴影。但是,这会导致混淆。您正在扩展一个基类,因此您的Cuadrado类应该在基类中使用base、altura和radio变量(通过基类中的getter/setter方法或将它们更改为受保护而不是私有)而不是重新定义它们。