我是Java的新手,想要提高我的OOP技能。因此我尝试编写所有我的“第一个程序”面向对象。
无论如何......我开始了一个小的原始测试程序:
public class Primitives {
byte b;
private void setByte (byte b)
{
this.b = b;
}
public byte getByte()
{
return b;
}
short s;
private void setShort (short s)
{
this.s = s;
}
public short getShort()
{
return s;
}
int i;
private void setInteger (int i)
{
this.i = i;
}
public int getInteger()
{
return i;
}
long l;
private void setLong (long l)
{
this.l = l;
}
public long getLong()
{
return l;
}
float f;
private void setFloat (float f)
{
this.f = f;
}
public float getfloat()
{
return f;
}
double d;
private void setDouble (double d)
{
this.d = d;
}
public double getDouble()
{
return d;
}
boolean bool;
private void setBoolean (boolean bool)
{
this.bool = bool;
}
public boolean getBoolean()
{
return bool;
}
char c;
private void setChar (char c)
{
this.c = c;
}
public char getChar()
{
return c;
}
String str;
private void setString (String str)
{
this.str = str;
}
public String getString()
{
return str;
}
public static void main(String[] args) {
Primitives prim = new Primitives();
prim.setBoolean(true);
//prim.setByte(42);
//prim.setChar("ft");
prim.setDouble(42.42);
//prim.setFloat(42);
prim.setInteger(42);
prim.setLong(424242);
//prim.setShort(0);
prim.setString("fourtytwo");
//System.out.println(integer.getInteger());
}
}
之后,我试图在另一个班级“Main”中调用我的getter:
public class Main {
public static void main(String[] args)
{
Primitives object = new Primitives();
int objectInt = object.getInteger();
String objectString = object.getString();
System.out.println(objectInt);
System.out.println(objectString);
}
}
我的输出是
0
null
这是怎么来的?我的意思是,我之前(例如getInt),为什么我收到0?
我知道这里必须有1000个答案,但我找不到合适的答案。
另一个问题:为什么我在我的Setter中得到“Primitives类型中的方法setByte(byte)不适用于参数(int)”? (这就是我评论一些类型的原因)
您的代码的问题是:您有两个main
类,看起来您正在运行Main
类中的那个并不启动您的变量。
你的main
类中的另一个Primitives
方法永远不会被执行,所以你实际上没有启动你的变量!
每个应用程序应该有一个main
类,只有一个
您应该在获取之前调用setter方法并设置值。