我的问题标题与我的问题完全不同。我很抱歉,因为我不知道这个问题的标题是什么。
假设我有一个班级让我们说“ClassA”
Class ClassA
{
int x=5;
int y=6;
int z=7;
static public int sum(int a,int b)
{
return (a+b);
}
}
现在我需要一些逻辑,我可以使用sum(),如下面的另一个类
int c = ClassA.sum(x,y);
int d = ClassA.sum(x,z);
这里我不需要声明“x”,“y”和“z”变量。它必须考虑在ClassA中定义的值。
我的问题可能很愚蠢,但只是帮助我。
我该怎么办????
答案 0 :(得分:0)
您可以将x,y和z声明为const
:
class ClassA
{
public const int x=5;
public const int y=6;
public const int z=7;
static public int sum(int a,int b)
{
return (a+b);
}
}
然后做:
int c = ClassA.sum(ClassA.x,ClassA.y);
答案 1 :(得分:0)
您可以将对象的实例传递给静态方法,它可以调用该对象上的实例成员。
class ClassA
{
int x=5;
int y=6;
int z=7;
static public int sum(ClassA obj)
{
return (obj.x+ obj.y);
}
}
在其他类中创建类ClassA的实例,并将此对象传递给静态方法
ClassA objA = new ClassA();
int c = ClassA.sum(objA);
答案 2 :(得分:0)
检查以下代码是否符合您的要求。
创建枚举为:
public enum MyEnum
{
x,y,z
}
classA代码将是:
class ClassA
{
static int x = 5;
static int y = 6;
static int z = 7;
static public int sum(MyEnum enum1, MyEnum enum2)
{
int a = 0;
int b = 0;
switch (enum1)
{
case MyEnum.x:
a = x;
break;
case MyEnum.y:
a = y;
break;
case MyEnum.z:
a = z;
break;
default:
break;
}
switch (enum2)
{
case MyEnum.x:
b = x;
break;
case MyEnum.y:
b = y;
break;
case MyEnum.z:
b = z;
break;
default:
break;
}
return (a + b);
}
}
我已将x,y,z设置为静态,因为您的方法是静态的,并且您无法在静态方法中访问实例成员。或者,您可以在声明变量x,y,z的同时将static
替换为const
。
希望这有帮助。