我是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”中调用我的吸气剂:
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中出现“原始类型中的setByte(byte)方法不适用于参数(int)”的原因? (这就是为什么我将一些类型注释掉)
答案 0 :(得分:2)
您应该先调用setter方法并设置值。
答案 1 :(得分:0)
您的代码存在的问题是:您有两个main
类,并且您似乎在Main
类中运行了一个类,但该类不会初始化变量。
main
类中的另一个Primitives
方法永远不会执行,因此您实际上尚未初始化变量!
每个应用程序应具有一个main
类,并且只有一个