class Welcome { public String ch="welcome"; void in() { System.out.println(ch); } } public class Hlo extends Welcome { public static void main(String args[]) { Welcome p = new Welcome(); p.in(); } }注意public的位置
对,就是这样。要把Hlo类声明为public。 注意,要把文件名改为Hol.java good luck^_^
------------------------------------------------------------------ 编写的原代码如下: public class Welcome { public String ch="welcome"; void in() { System.out.println(ch); } } class Hlo extends Welcome { public static void main(String args[]) { Welcome p = new Welcome(); p.in(); } } 提示出现错误信息: java.lang.NoSuchMethodError: main Exception in thread "main"请各位大虾指点迷经,并给出正确代码谢谢 -------------------------------------------------------------“主要”是改成: public class Hlo extends Welcome这样的形式。。但为什么你写的:public class Welcome是错的呢?? 原因是在JAVA中,public必须与main所在的类进行公开PUBLIC处理(关联),并且JAVA保存的*.java文件必须是public所在类的类名,比如你的类名为Hlo,则必须保存成Hlo.java文件。 如果你这样写: public class Welcome { public String ch="welcome"; void in() { System.out.println(ch); } } public class Hlo extends Welcome { public static void main(String args[]) { Welcome p = new Welcome(); p.in(); } }那么这个*.java文件保存的是Welcome.java呢,还是Hlo.java呢,肯定要出错的。。 我也刚学JAVA不知道对不对,错误的话请高手指正。。 --------------JavaXW (圣斗士-紫龙-庐山升龙霸)
呵呵。来迟了他们已经说的很完整了,主要就是pubic的问题,以后要多注意这些细节啊
看了这个问题 虽然简单 可是我产生一个新问题 比如 我以下的写法 class Welcome { private String ch="welcome"; public void in() { System.out.println(ch); } }public class Hlo { public static void main(String args[]) { Welcome p = new Welcome(); p.in(); } }我这个按照我平时的风格做了些改动 比如我在Welcome里把ch 变量改成private的 然后把in改成public的 而在Hlo我取消了继承关系 请问 原来的写法有什么好处?为什么要那样写 我一直一来都按我自己的写法写 不知哪个更好?
WoAiJavaWoAiCoffee() 的问题我来回复好了, 其实我这个程序的本意是用来练习类继承的 public static void main(String args[]) { Welcome p = new Welcome(); p.in(); } 代码的本意写法应该为 public static void main(String args[]) { Hlo p = new Hlo(); p.in(); } 自然在对象的声明中要用到继承关系
支持楼主的贴子,我再补充回复一下 WoAiJavaWoAiCoffee() 的问题: ----------------------------------- 看了这个问题 虽然简单 可是我产生一个新问题 比如 我以下的写法 class Welcome { private String ch="welcome"; public void in() { System.out.println(ch); } }public class Hlo { public static void main(String args[]) { Welcome p = new Welcome(); p.in(); } }我这个按照我平时的风格做了些改动 比如我在Welcome里把ch 变量改成private的 然后把in改成public的 而在Hlo我取消了继承关系 请问 原来的写法有什么好处?为什么要那样写 我一直一来都按我自己的写法写 不知哪个更好? -----------------------------------我直言:WoAiJavaWoAiCoffee() 兄肯定不太懂面向对象的设计,这点从private public的区别就能看出。我以前是搞DELPHI的,面向对象的设计都是通的private public的区别就是访问成员的作用域,即访问类的可见性如果你这样: class Welcome { private String ch="welcome";//那么ch引用肯定不能被他的引用所访问,因为是private //保护成员的,这个ch引用是在本类中进行数据处理的。 //在设计DELPHI控件中是进行访类控件内部计算使用的变量 //通常设置成private的访问可视性证明此变量非常重要, //不允许程序员进行改动,只允许程序进行设值 public void in()//而这个public成员方法in就可以在该类的引用中进行访问,因为公 //有可视性,public and private主要的区别就是创建了一个类的引用后 //按下.后,会发现只有public可视性的成员或方法进行下拉显示(IDE中) { System.out.println(ch); } }public class Hlo { public static void main(String args[]) { Welcome p = new Welcome(); p.in();//在这里如果private String ch="welcome";设成 //public String ch="welcome"; //那么一些经验不足的程序员可能会改动ch的值,因为是public公开性,任何人 //都可以更改,如果刚学会JAVA的程序员在p.in();前面加上一句 //p.ch="GoodBYE";后,我想你拿到客户进行演示时会遇到客户莫名其妙的表情 //怎么刚演示就googbye了呢?呵呵,很明显这样的软件销售量不好。 // } } 晕,讲了一大堆,不知道对错,如果错了还请高手指正,我也刚学JAVA。。 ------------------------ JavaXW(圣斗士-紫龙-庐山升龙霸)
{
public String ch="welcome";
void in()
{
System.out.println(ch);
}
}
public class Hlo extends Welcome
{
public static void main(String args[])
{
Welcome p = new Welcome();
p.in();
}
}注意public的位置
注意,要把文件名改为Hol.java
good luck^_^
编写的原代码如下:
public class Welcome
{
public String ch="welcome";
void in()
{
System.out.println(ch);
}
}
class Hlo extends Welcome
{
public static void main(String args[])
{
Welcome p = new Welcome();
p.in();
}
}
提示出现错误信息:
java.lang.NoSuchMethodError: main
Exception in thread "main"请各位大虾指点迷经,并给出正确代码谢谢
-------------------------------------------------------------“主要”是改成:
public class Hlo extends Welcome这样的形式。。但为什么你写的:public class Welcome是错的呢??
原因是在JAVA中,public必须与main所在的类进行公开PUBLIC处理(关联),并且JAVA保存的*.java文件必须是public所在类的类名,比如你的类名为Hlo,则必须保存成Hlo.java文件。
如果你这样写:
public class Welcome
{
public String ch="welcome";
void in()
{
System.out.println(ch);
}
}
public class Hlo extends Welcome
{
public static void main(String args[])
{
Welcome p = new Welcome();
p.in();
}
}那么这个*.java文件保存的是Welcome.java呢,还是Hlo.java呢,肯定要出错的。。
我也刚学JAVA不知道对不对,错误的话请高手指正。。
--------------JavaXW (圣斗士-紫龙-庐山升龙霸)
class Welcome
{
private String ch="welcome";
public void in()
{
System.out.println(ch);
}
}public class Hlo
{
public static void main(String args[])
{
Welcome p = new Welcome();
p.in();
}
}我这个按照我平时的风格做了些改动 比如我在Welcome里把ch 变量改成private的 然后把in改成public的 而在Hlo我取消了继承关系 请问 原来的写法有什么好处?为什么要那样写 我一直一来都按我自己的写法写 不知哪个更好?
其实我这个程序的本意是用来练习类继承的
public static void main(String args[])
{
Welcome p = new Welcome();
p.in();
}
代码的本意写法应该为
public static void main(String args[])
{
Hlo p = new Hlo();
p.in();
}
自然在对象的声明中要用到继承关系
-----------------------------------
看了这个问题 虽然简单 可是我产生一个新问题 比如 我以下的写法
class Welcome
{
private String ch="welcome";
public void in()
{
System.out.println(ch);
}
}public class Hlo
{
public static void main(String args[])
{
Welcome p = new Welcome();
p.in();
}
}我这个按照我平时的风格做了些改动 比如我在Welcome里把ch 变量改成private的 然后把in改成public的 而在Hlo我取消了继承关系 请问 原来的写法有什么好处?为什么要那样写 我一直一来都按我自己的写法写 不知哪个更好?
-----------------------------------我直言:WoAiJavaWoAiCoffee() 兄肯定不太懂面向对象的设计,这点从private public的区别就能看出。我以前是搞DELPHI的,面向对象的设计都是通的private public的区别就是访问成员的作用域,即访问类的可见性如果你这样:
class Welcome
{
private String ch="welcome";//那么ch引用肯定不能被他的引用所访问,因为是private
//保护成员的,这个ch引用是在本类中进行数据处理的。
//在设计DELPHI控件中是进行访类控件内部计算使用的变量
//通常设置成private的访问可视性证明此变量非常重要,
//不允许程序员进行改动,只允许程序进行设值
public void in()//而这个public成员方法in就可以在该类的引用中进行访问,因为公
//有可视性,public and private主要的区别就是创建了一个类的引用后
//按下.后,会发现只有public可视性的成员或方法进行下拉显示(IDE中)
{
System.out.println(ch);
}
}public class Hlo
{
public static void main(String args[])
{
Welcome p = new Welcome();
p.in();//在这里如果private String ch="welcome";设成
//public String ch="welcome";
//那么一些经验不足的程序员可能会改动ch的值,因为是public公开性,任何人
//都可以更改,如果刚学会JAVA的程序员在p.in();前面加上一句
//p.ch="GoodBYE";后,我想你拿到客户进行演示时会遇到客户莫名其妙的表情
//怎么刚演示就googbye了呢?呵呵,很明显这样的软件销售量不好。
//
}
}
晕,讲了一大堆,不知道对错,如果错了还请高手指正,我也刚学JAVA。。
------------------------ JavaXW(圣斗士-紫龙-庐山升龙霸)
既然这样那我就等WoAiJavaWoAiCoffee() 回复了在结帖吧,希望大家不要等急了^0^
按照我的理解 如果不是全局变量 没必要吧变量设成公共的 设成保护或私有的就可以了