java类能嵌套定义吗?请大家看看这个程序

yxpgs 2006-04-05 12:36:25
请大家看看这个程序:
class tri
{
static class triangle{
int x,y,z;
public triangle(int i,int j,int k)
{ x=i;y=j;z=k;
}
}

public static void main(String a[])
{
triangle t1;
t1=new triangle(3,4,5);
if(judge(t1))
System.out.println("zhi jiao ");
else
System.out.println("bushi zhijiao ");}
public static boolean judge(triangle m){
if(Math.sqrt(m.x*m.x+m.y*m.y)==Math.sqrt(m.z*m.z))
return true;
else
return false;}

}
程序运行结果为 zhijiao。 编译运行一点问题都没有!可是我就是搞不明白这不算是类定义嵌套吗?在主类tri内部有定义了类triangle,应该作何解释呢?
...全文
616 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
开发者开聊 2006-04-06
  • 打赏
  • 举报
回复
定态内部类
rongdajian 2006-04-06
  • 打赏
  • 举报
回复 1
类是可以嵌套的,但是继承就不能多重继承了哈!
liefeng123 2006-04-06
  • 打赏
  • 举报
回复
c#也可以
alvin_liao 2006-04-06
  • 打赏
  • 举报
回复
你做做GUI的程序就明白了。内部类经常见的。
interpb 2006-04-05
  • 打赏
  • 举报
回复
如果真的如你所说 那本数九十一本烂书

嵌套类 在java中应用很广泛

方法不可以嵌套
yxpgs 2006-04-05
  • 打赏
  • 举报
回复
可是我们教科书上特别提出:方法和类都不能嵌套定义啊!不过从程序运行结果看好象是可以!
我不知道该如何解释书上提到的?
interpb 2006-04-05
  • 打赏
  • 举报
回复
java
里面为了更好的进行代码隐藏和多重继承
是可以定义嵌套类的


hsuyuan 2006-04-05
  • 打赏
  • 举报
回复
内部类看上去就是嵌套在了类里面,建议看下java核心编程,里面有详细的解释
jobs002 2006-04-05
  • 打赏
  • 举报
回复
是的,跟着楼上补基础.................
interpb 2006-04-05
  • 打赏
  • 举报
回复
嵌套类一般有2种类型:前面加static标识符的和不加static 标识符的。一个static的嵌套类有static修饰符。因为它是static,所以只能通过对象来访问它包围类的成员。也就是说,它不能直接引用它包围类的成员。因为有这个限制,所以static嵌套类很少使用。

嵌套类最重要的类型是内部类(inner class)。内部类是非static的嵌套类。它可以访问它的外部类的所有变量和方法,它可以直接引用它们,就像外部类中的其他非static成员的功能一样。这样,一个内部类完全在它的包围类的范围之内

看看概念 会清楚一点
5element 2006-04-05
  • 打赏
  • 举报
回复
你所说的是内部类
qq14923349 2006-04-05
  • 打赏
  • 举报
回复
内部类不等于嵌套类
书是正确的
jobs002 2006-04-05
  • 打赏
  • 举报
回复
*/
class Test
{
void testTest1()
{
Test1 test1=new Test1();
System.out.println(test1.m);
System.out.println(test1.n);

}
class Test1
{
private int m,n;
Test1()
{
m=10;
n=5;
}

}
public static void main(String []args)
{
Test t=new Test();
t.testTest1();
}
}证明可以访问内部类的private成员,不好意思..........
jobs002 2006-04-05
  • 打赏
  • 举报
回复
主要是main方法是入口函数............
class Test
{
static class Test1
{
int m,n;
Test1()
{
m=5;
n=10;
}

}
public static void main(String []args)
{
Test1 t=new Test1();
System.out.println(t.m);
System.out.println(t.n);

}
}
谢谢,以后会更加努力的................
interpb 2006-04-05
  • 打赏
  • 举报
回复
肯定要声明对象才可以访问

而且Test1的private的方法Test也可以访问

jobs002 2006-04-05
  • 打赏
  • 举报
回复
class Test
{
class Test1
{
int m,n;

}
public static void main(String []args)
{
System.out.println(m);
System.out.println(n);
}
}
需要声明Test1的对象才能访问............
interpb 2006-04-05
  • 打赏
  • 举报
回复
主类可以访问内部类内容

jobs002 基础不不太好哦

写个程序不就明白了
yxpgs 2006-04-05
  • 打赏
  • 举报
回复
哦 谢谢大家 看来我基础还得狠补
jobs002 2006-04-05
  • 打赏
  • 举报
回复
嵌套类是可以的,也叫内部类,在类内部定义的类可以访问主类的成员,相反,主类是不可以访问内部类的内容,主要是为了更好的进行封装...................

62,629

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧