Java中两个class关系

时间:2022-09-11 19:55:39
一个.java文件中有两个类 那么这两个类是什么关系,和同在一个包中的两个类一样吗 求详细解释~~

24 个解决方案

#1


当然同包了,你写这两个类的时候不是只写了一个package吗?

#2



package test;

public class Test {
public void helloWorld() {
System.out.println("hello world");
}
}

class Test2 {
public void helloWorld() {
System.out.println("hello world");
}
}


上面是把两个类写在一个.JAVA文件中的

你再看一下生成的.class文件,有两个,分别是Test.class Test2.class

你再把.class文件反编译一下看看,反编译后的代码:
Test.java

package test;

import java.io.PrintStream;

public class Test
{
  public void helloWorld()
  {
    System.out.println("hello world");
  }
}


Test2.java

package test;

import java.io.PrintStream;

class Test2
{
  public void helloWorld()
  {
    System.out.println("hello world");
  }
}

除了Test2不是public之外,应该和同一个包的两个.Java文件没什么区别,个人意见,如有错误请指教!

#3


是同一个包中的,区别在于同一个文件中最多只能有一个public class ,并且public class的名字必须与文件的名字相同。

#4


二楼说的对,在生成字节码文件.class的时候,是对每一个类分别生成一个字节码文件,所以他们是一样的

#5


是同一个包中的,区别在于同一个文件中最多只能有一个public class ,并且public class的名字必须与文件的名字相同。 

#6


在同一个包中

#7


跟放在同一个包中的其他类没什么区别,但是一般就是一个文件一个类,这样也好找

#8


引用 7 楼 nfs13nfs14 的回复:
跟放在同一个包中的其他类没什么区别,但是一般就是一个文件一个类,这样也好找


但有内部类的情况呀。

#9


同在一个.java文件中的两个类一定同在一个包下,且其中只能有一个public类文件名与public类相同,而同一个包下在不同.java文件中的类是没有这种关系的,但可调用对方

#10


是同包关系

#11


当然同包了,你写这两个类的时候不是只写了一个package吗?当然同包了,你写这两个类的时候不是只写了一个package吗?当然同包了,你写这两个类的时候不是只写了一个package吗?当然同包了,你写这两个类的时候不是只写了一个package吗?当然同包了,你写这两个类的时候不是只写了一个package吗?当然同包了,你写这两个类的时候不是只写了一个package吗?当然同包了,你写这两个类的时候不是只写了一个package吗?当然同包了,你写这两个类的时候不是只写了一个package吗?当然同包了,你写这两个类的时候不是只写了一个package吗?当然同包了,你写这两个类的时候不是只写了一个package吗?

#12


每天回帖

#13


恩。在同一个包中关系一样的。区别在于同一个文件中最多只能有一个public class ,并且public class的名字必须与文件的名字相同。

#14


在同一个包中,但只能有一个为public

#15


只要不是内部类就行

#16


引用 2 楼 luochengor 的回复:
Java code


package test;

public class Test {
    public void helloWorld() {
        System.out.println("hello world");
    }
}

class Test2 {
    public void helloWorld() {
        Syst……


这是说得挺对。。

#17


是能有一个是Public的,所以也没什么意义。

#18


但如果你写成内部类的话 就有两个.class文件了

#19


同一个.java文件中,只能有一个public修饰的class

#20


只有一個是public,可以在本包外訪問

#21


    定义类的时候有一个命名要求:

类名称的每个单词的首字母都必须大写,例如:HelloWorldTest,

而对于定义类也有两种形式:

1、 使用public class定义:文件名称必须和类名称保持一致,在一个*.java文件之中只能定义一个public class;
2、 使用class定义:文件名称可以和类名称不一致,但是生成之后的*.class文件是由class定义的类名称,在一个*.java文件之中可以同时定义多个class类,而且在编译的时候会自动的生成不同的*.class文件。

同一包中的两个类是可以相互访问的!

#22


内部类是写在类里面的类,如,

public class OuterClass {
...
private class innerClass{
..
 }
..
}


如果不写在类里面,
public class c1{

}

class c2{

}

这样子,就是同包的类,不过c2不可以是public的,.一个文件只能一个public class且和文件名相同.

#23


那当然在同一个包中了,第一行写的package的包中,或者为默认包中……

#24


这两个是否只有第一个中能写main函数?

#1


当然同包了,你写这两个类的时候不是只写了一个package吗?

#2



package test;

public class Test {
public void helloWorld() {
System.out.println("hello world");
}
}

class Test2 {
public void helloWorld() {
System.out.println("hello world");
}
}


上面是把两个类写在一个.JAVA文件中的

你再看一下生成的.class文件,有两个,分别是Test.class Test2.class

你再把.class文件反编译一下看看,反编译后的代码:
Test.java

package test;

import java.io.PrintStream;

public class Test
{
  public void helloWorld()
  {
    System.out.println("hello world");
  }
}


Test2.java

package test;

import java.io.PrintStream;

class Test2
{
  public void helloWorld()
  {
    System.out.println("hello world");
  }
}

除了Test2不是public之外,应该和同一个包的两个.Java文件没什么区别,个人意见,如有错误请指教!

#3


是同一个包中的,区别在于同一个文件中最多只能有一个public class ,并且public class的名字必须与文件的名字相同。

#4


二楼说的对,在生成字节码文件.class的时候,是对每一个类分别生成一个字节码文件,所以他们是一样的

#5


是同一个包中的,区别在于同一个文件中最多只能有一个public class ,并且public class的名字必须与文件的名字相同。 

#6


在同一个包中

#7


跟放在同一个包中的其他类没什么区别,但是一般就是一个文件一个类,这样也好找

#8


引用 7 楼 nfs13nfs14 的回复:
跟放在同一个包中的其他类没什么区别,但是一般就是一个文件一个类,这样也好找


但有内部类的情况呀。

#9


同在一个.java文件中的两个类一定同在一个包下,且其中只能有一个public类文件名与public类相同,而同一个包下在不同.java文件中的类是没有这种关系的,但可调用对方

#10


是同包关系

#11


当然同包了,你写这两个类的时候不是只写了一个package吗?当然同包了,你写这两个类的时候不是只写了一个package吗?当然同包了,你写这两个类的时候不是只写了一个package吗?当然同包了,你写这两个类的时候不是只写了一个package吗?当然同包了,你写这两个类的时候不是只写了一个package吗?当然同包了,你写这两个类的时候不是只写了一个package吗?当然同包了,你写这两个类的时候不是只写了一个package吗?当然同包了,你写这两个类的时候不是只写了一个package吗?当然同包了,你写这两个类的时候不是只写了一个package吗?当然同包了,你写这两个类的时候不是只写了一个package吗?

#12


每天回帖

#13


恩。在同一个包中关系一样的。区别在于同一个文件中最多只能有一个public class ,并且public class的名字必须与文件的名字相同。

#14


在同一个包中,但只能有一个为public

#15


只要不是内部类就行

#16


引用 2 楼 luochengor 的回复:
Java code


package test;

public class Test {
    public void helloWorld() {
        System.out.println("hello world");
    }
}

class Test2 {
    public void helloWorld() {
        Syst……


这是说得挺对。。

#17


是能有一个是Public的,所以也没什么意义。

#18


但如果你写成内部类的话 就有两个.class文件了

#19


同一个.java文件中,只能有一个public修饰的class

#20


只有一個是public,可以在本包外訪問

#21


    定义类的时候有一个命名要求:

类名称的每个单词的首字母都必须大写,例如:HelloWorldTest,

而对于定义类也有两种形式:

1、 使用public class定义:文件名称必须和类名称保持一致,在一个*.java文件之中只能定义一个public class;
2、 使用class定义:文件名称可以和类名称不一致,但是生成之后的*.class文件是由class定义的类名称,在一个*.java文件之中可以同时定义多个class类,而且在编译的时候会自动的生成不同的*.class文件。

同一包中的两个类是可以相互访问的!

#22


内部类是写在类里面的类,如,

public class OuterClass {
...
private class innerClass{
..
 }
..
}


如果不写在类里面,
public class c1{

}

class c2{

}

这样子,就是同包的类,不过c2不可以是public的,.一个文件只能一个public class且和文件名相同.

#23


那当然在同一个包中了,第一行写的package的包中,或者为默认包中……

#24


这两个是否只有第一个中能写main函数?