java - 主要方法和类,在哪里声明?

标签 java class methods static

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the help center为指导。




8年前关闭。




编程新手,Java 新手。我似乎了解类及其组件、方法等基本部分,但我不知道如何将它们组合在一起。例如,我正在遵循教程并尝试编写一个类 Card,它可以根据构造过程中传递的 args 变成任何卡片。

我的第一个问题是,如果我将 Card 类声明为 public(第 5 行),编译器会说表达式开始非法。

如果我删除 public,它会继续执行 println 语句,在那里它提示无法从静态环境中引用非静态变量。那是因为我在 main 方法中工作,它总是静态的,对吧?所以,我需要向 Card 添加方法来读取内部状态并将其提供给 println 语句,这会起作用吗?

public class Deck {
    public static void main(String[] args) {

    class Card {
        public int rank;
        public int suit;

        public Card(int startSuit, int startRank) {
            rank = startRank;
            suit = startSuit;
        }
    }

        Card aceOfSpades = new Card(1, 1);
        System.out.println("Card is ..." + Card.rank + " of " + Card.suit);
    }
}

第二轮
这是新代码,文件是 Card.java:
public class Card {
        //declare states
        //rank 1-13 for ace-king
        //suit 1-4 spade,heart,club,diamond
        public int rank;
        public int suit;

        //constructor
        public Card(int startSuit, int startRank) {
            rank = startRank;
            suit = startSuit;

        }

        //methods for Card




        public static void main(String[] args) {
            //call Card constructor
            //make card ace of spades (1,1)
            Card aceOfSpades = new Card(1,1);

            //read internal state of new Card object
            //what kind of card is it?
            System.out.println("Card is ..." + rank + " of " + suit);
        }
}

我平衡​​了我的括号,主要方法现在是 Card 类的一部分,我认为它看起来更好。 oney 编译错误现在与 println 语句中的变量相关联。 (不能从静态上下文中引用非静态变量西装。)我认为这意味着我必须编写像 getSuit() 和 getRank() 这样的方法来读取变量状态,然后在我的 println 中使用该方法而不是变量本身?

那个方法看起来像这样,对吧?
public int getSuit() {
    return suit;

}

(请耐心等待,我的格式不完全正确,我会努力解决的)

最佳答案

搬家类Card出方法体 main() .所有这些代码都应该在一个与外部类同名的文件中,Deck.java .

关于java - 主要方法和类,在哪里声明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16123410/

相关文章:

java - 从 ObjectMapper 中的 POJO 覆盖 @JsonInclude(Include.NON_NULL)

Python-从类中的函数访问变量

java - 什么时候应该创建/打开 EntityManagerFactory 实例?

java - 如何将 map 列表转换为 CSV

Javascript - 在每个实例上增加类变量

c# - 如何通过传递参数使用java脚本/Jquery调用C#(aspx.cs)函数

java - 我的 psvm 类不运行其他类和方法

python - 如何制定一个类方法?

java - 按照模式指定的顺序在序列下的 XML 中插入元素

c++ - 如何将值初始化为 vector 中声明的对象?