为啥我不能在 main 方法中调用私有变量?
Posted
技术标签:
【中文标题】为啥我不能在 main 方法中调用私有变量?【英文标题】:Why can't I call a private variable in main method?为什么我不能在 main 方法中调用私有变量? 【发布时间】:2012-11-18 01:25:29 【问题描述】:此代码应该在输入对话框中接收全名字符串示例“Billy Bob Smith”,并在消息对话框中将首字母作为字母组合示例“BBS”输出。但由于某种原因,main 方法不允许我访问 fullName 变量。
import javax.swing.*;
public class HardMonogram
//---------- ATTRIBUTES ----------//
private String fullName;
private String monogram;
private String first;
private String middle;
private String last;
//---------- METHODS ----------//
public String getInitial(String seperateName)
return seperateName.substring(0, 1);
public void getSeperateName(String fullName)
first = fullName.substring(0, fullName.indexOf(" "));
middle = fullName.substring(fullName.indexOf(" ") + 1, fullName.length());
last = middle.substring(middle.indexOf(" ") + 1, middle.length());
middle = middle.substring(0, middle.indexOf(" "));
public void setMonogram()
monogram = getInitial(first) +
getInitial(middle) +
getInitial(last);
JOptionPane.showMessageDialog(null, monogram);
public static void main(String[] args)
myMono.fullName = JOptionPane.showInputDialog(null, "Type in you full name");
HardMonogram myMono = new HardMonogram();
myMono.getSeperateName(myMono.fullName);
myMono.setMonogram();
给我这个构建错误
/Users/aaron/School/Fall 2012/CSCI-C 201/Labs/LB08/HardMonogram.java:33: error: cannot find symbol
myMono.fullName = JOptionPane.showInputDialog(null, "Type in you full name");
^
symbol: variable myMono
location: class HardMonogram
1 error
[Finished in 1.2s with exit code 1]
这是我对 java 类的介绍,但我不知道为什么我不能访问该变量。我显然忽略了一些东西。有什么想法吗?
【问题讨论】:
你可以。你有一个不同的问题。查看错误消息。 【参考方案1】:更新:
再次阅读问题后,您只需要在创建实例后移动 main 方法中的第一行。
HardMonogram myMono = new HardMonogram();
myMono.fullName = JOptionPane.showInputDialog(null, "Type in you full name");
myMono.getSeperateName(myMono.fullName);
myMono.setMonogram();
【讨论】:
我在 main 方法中创建了 myMono 作为对象?我做错什么了吗?当我注释掉 fullName 调用时,myMono.getseperateName 调用不会给我错误 问题是 main 方法中的第一个语句,您正在尝试分配 myMono.fullName,在创建实例后移至。 是的,bulum 发表了这样的评论我是个白痴,不知道为什么我认为我可以把它放在对象创建之上。谢谢大家! @SavgStorm:是的。祝你好运。不要忘记接受答案。【参考方案2】:只需在对象声明后加上myMono.fullName = JOptionPane.showInputDialog(null, "Type in you full name");
(HardMonogram myMono = new HardMonogram();
)。
【讨论】:
【参考方案3】:MyMono 尚未在您的 main 方法的第一行中声明。将其添加到开头。
public static void main(String[] args)
HardMonogram myMono = new HardMonogram();
myMono.fullName = JOptionPane.showInputDialog(null, "Type in you full name");
myMono.getSeperateName(myMono.fullName);
myMono.setMonogram();
【讨论】:
以上是关于为啥我不能在 main 方法中调用私有变量?的主要内容,如果未能解决你的问题,请参考以下文章