作者samxpjp (山姆)
看板java
标题Re: [问题] 请教Main Class无法呼叫子类别
时间Sun Jul 7 20:59:22 2013
真的非常感谢 tkcn 前辈指导
其实我不懂inner class
我这样写是因为看了一个老师的写法我照着练习,但是老师在Eclipse里
一样的写法是完全可行的真的!!我有影片
附上位址
https://www.youtube.com/watch?v=Cly8MWf7C6M
所以我怀疑是不是我的NETBEANS哪有理有问题?
看了前辈的文章跟指导的确解决了我的问题 感谢您!!
我以为老师的写法就是一般子继承父的写法。
可以让我在打扰一下吗 抱歉不是我不愿意看书或查资料
只是如果前辈直接教导让我更深刻
是因为我的父类别 写了PUBLIC修饰子吗 才会变成inner class
那inner class在什麽时候比较恰当 其实我在书中目前也还没有看到这样应用
感谢前辈!!
※ 引述《tkcn (sayuan)》之铭言:
: 这篇看完应该可以解决所有疑问: http://c2.com/cgi/wiki?InnerClass
: 这边点出几个问题,
: 1. namespace:
: 你是在练习继承,
: 但因为把 sub class 同时也写成了 inner class,
: 导致观念更难厘清。
: 简单的说,inner class 的名称应该是 SuperClass.SC,
: SuperClass.SC SCDEMO = new SuperClass.SC();
: 所以改成上述後,你会遇到下一个问题:
: an enclosing instance that contains SuperClass.SC is required
: 2. 上面那篇提到:
: "An instance of an inner class can only live
: attached to an instance of the outer class"
: 你需要 SuperClass 的 instance,才能 instantiate SC。
: SuperClass.SC SCDEMO = new SuperClass().new SC();
: 现在程式可以动了,不过多产生了一个 SuperClass instance,
: 真的有这个必要吗?
: 3. 也许你要的是 static inner class
: static inner class 像是多了一层 namespace,
: 所以你不再需要 outer class 的 instance 了。
: 将 SC 加上 static 修饰後,你就可以写:
: SuperClass.SC SCDEMO = new SuperClass.SC();
: 话说回来,还在厘清继承的观念,
: 最好还是暂时先避开 inner class 的使用吧。
: ※ 引述《samxpjp (山姆)》之铭言:
: : 各位大大我再练习 继承的写法但是遇到了一个问题 如下
: : 请各位高手指点
: : package inheritancedemo;
: : //父类别
: : public class SuperClass {
: : public String Name;
: : public int Age;
: : //子类别
: : class SC extends SuperClass{
: : public int ID;
: : }
: : }
: : ----------------------------------------------
: : package InheritanceDemo;
: : /**
: : *
: : * @author sam
: : */
: : public class SubClassDemo {
: : /**
: : * @param args the command line arguments
: : */
: : public static void main(String[] args) {
: : SC SCDEMO=new SC(); <--一直说找不到SC,但改成父类别却可以
: : }
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 124.12.160.233
1F:推 LPH66:inner class 就是包在别的 class 中的 class 07/07 21:18
2F:推 cuteclare:原po你把 {} 看歪了啦 ~ 07/08 00:29
3F:推 gmoz:老话一句 程式99.99%不会错 基本上都是人为的错XDDD 07/08 11:21
4F:推 PsMonkey:到现在你能发现 Java 的错,不是不可能,只能说很神 07/08 11:48
5F:→ samxpjp:我看了到}的位置错了导致变成 inner class 是小弟我不才 07/08 11:58
6F:→ samxpjp:再次感谢各位前辈. 07/08 12:00