声明子类的对象
Declaring object of subclass
我正在尝试创建子类“'smycken'”的实例,但它似乎不起作用,因为参数中的“'namn'”出错。
public abstract class Värdesaker {
String namn;
double värde;
double moms = 1.25;
public static void main(String[] args) {
Värdesaker v = new smycken(namn, false, 0);
}
class smycken extends Värdesaker {
double vikt, ädelstenar;
public smycken(String namn, boolean guld, int ädelstenar) {
this.namn = namn;
this.ädelstenar = ädelstenar;
if (guld)
this.värde = (2000 + (ädelstenar * 500)) * moms;
else
this.värde = (500 + (ädelstenar * 500)) * moms;
}
我已将您的代码修改如下。它似乎工作。
需要以下内容
- 将访问说明符更改为受保护的成员变量
super class Värdesaker(或者你可以提供 getter-setters
访问私有变量)
- 将 smycken 标记为静态
- main 方法无法访问非静态、非 public 成员 variables.So 您必须实例化您的参数或像在构造函数中使用之前一样创建。
//修改后class
public abstract class Värdesaker {
protected String namn;
protected double värde;
protected double moms = 1.25;
public static void main(String[] args)
{
Värdesaker v = new smycken("Test", false, 0);
}
static class smycken extends Värdesaker
{
double vikt, ädelstenar;
public smycken(String namn, boolean guld, int ädelstenar)
{
this.namn = namn;
this.ädelstenar = ädelstenar;
if (guld) {
this.värde = (2000 + (ädelstenar * 500)) * moms;
} else {
this.värde = (500 + (ädelstenar * 500)) * moms;
}
}
}
}
我正在尝试创建子类“'smycken'”的实例,但它似乎不起作用,因为参数中的“'namn'”出错。
public abstract class Värdesaker {
String namn;
double värde;
double moms = 1.25;
public static void main(String[] args) {
Värdesaker v = new smycken(namn, false, 0);
}
class smycken extends Värdesaker {
double vikt, ädelstenar;
public smycken(String namn, boolean guld, int ädelstenar) {
this.namn = namn;
this.ädelstenar = ädelstenar;
if (guld)
this.värde = (2000 + (ädelstenar * 500)) * moms;
else
this.värde = (500 + (ädelstenar * 500)) * moms;
}
我已将您的代码修改如下。它似乎工作。 需要以下内容
- 将访问说明符更改为受保护的成员变量 super class Värdesaker(或者你可以提供 getter-setters 访问私有变量)
- 将 smycken 标记为静态
- main 方法无法访问非静态、非 public 成员 variables.So 您必须实例化您的参数或像在构造函数中使用之前一样创建。
//修改后class
public abstract class Värdesaker {
protected String namn;
protected double värde;
protected double moms = 1.25;
public static void main(String[] args)
{
Värdesaker v = new smycken("Test", false, 0);
}
static class smycken extends Värdesaker
{
double vikt, ädelstenar;
public smycken(String namn, boolean guld, int ädelstenar)
{
this.namn = namn;
this.ädelstenar = ädelstenar;
if (guld) {
this.värde = (2000 + (ädelstenar * 500)) * moms;
} else {
this.värde = (500 + (ädelstenar * 500)) * moms;
}
}
}
}