use*_*084 1 java methods static-methods class
可能重复:
方法何时应该是静态的?
我正在尝试为管/地铁票机制作接口类.不是真的,而是计算机科学模块的课程.我不明白何时使用静态方法.我不太了解计算机科学,但主要方法似乎使用静态.
class UNInterfaceTest
{
public static final int NOTTING_HILL = 1;
public static final int HIGH_KEN = 2;
public static final int GLOUS = 3;
public static final int SOUTH_KEN = 4;
public static final int SLOANE = 5;
public static final int VICTORIA = 6;
public static final int ST_JAMES = 7;
public static final int WESTMINSTER = 8;
public static final int QUIT = 10;
private Input in = new Input();
private static void displayMenu()
{
System.out.println("CIRCLE LINE: Please Select the Number of Your Current Station.");
System.out.println(NOTTING_HILL + ": Nottinghill_Gate");
System.out.println(HIGH_KEN + ": High_Street_Kensignton");
System.out.println(GLOUS + ": Gloucester_Road");
System.out.println(SOUTH_KEN + ": South_Kensignton");
System.out.println(SLOANE + ": Sloane_Square");
System.out.println(VICTORIA + ": Victoria");
System.out.println(ST_JAMES + ": St_James_Park");
System.out.println(WESTMINSTER + ": Westminster");
System.out.println();
System.out.println(QUIT + ". Quit");
}
public static void run()
{
while(true)
{
displayMenu();
int option = getMenuInput();
if (option == QUIT)
{
break;
}
doOption(option);
}
}
private static void doOption(int option)
{
switch(option){
case NOTTING_HILL:
//findNottinghill_Gate();
break;
case HIGH_KEN:
//findHighStreetKensignton();
break;
case GLOUS:
//findGloucesterRoad();
break;
case SOUTH_KEN:
//findSouthKensignton();
break;
case SLOANE:
// findSloaneSquare();
break;
case VICTORIA:
//findVictoria();
break;
case ST_JAMES:
//findStJamesPark();
break;
case WESTMINSTER:
//findWestminster();
break;
default:
System.out.println("Invalid option - try again");
}
}
private int getMenuInput()
{
//KeyboardInput val = new KeyboardInput();
System.out.print("Enter menu selection: ");
int option = in.nextInt();
in.nextLine();
return option;
}
public static void main(String[] args)
{
run();
}
}
Run Code Online (Sandbox Code Playgroud)
将类视为cookie切割器,将对象视为cookie(类的实例).静态方法是类本身的一部分(cookie切割器),如同MyClass.myMethod();
,而非静态方法是类实例(cookie)的一部分,如new MyClass().myMethod();
.
在您的情况下,静态方法通常是特定于售票机的东西,例如计算应扣除多少钱.非静态方法是特定于单个故障单计数器的事物,例如跟踪它已处理的故障单数量.
以下是一些更多信息:http:
//cscie160-distance.com/nonstatic.html
归档时间: |
|
查看次数: |
10955 次 |
最近记录: |