一个java源文件编译后是否只生成一个class文件

如题所述

否。
一个JAVA源文件里面可以有内部类,其他类(有且仅有一个类可以声明为public),所以,编译后,可以有多个class文件
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-03-27
1.关于类的定义:
[public] class 类名称()
public class:类名称必须和文件名称保持一致,在一个*.java之中只能有一个public class;

class:类名称可以和文件名称不一致,但是生成的是class定义的名称,在一个*.java之中可以存在多个class定义。
例子:
class Person{ //类名称首字母大写
String name ;
int age ;
public void tell(){ //没有static
System.out.println("姓名:" + name + ",年龄:" + age) ;
}
}
class Emp{ //雇员类
private int empno ;
private String ename ;
private String job ;
private double sal ;
private double comm ;
public Emp(){}
public Emp(int eno,String ena,String j,double s, double c){
empno = eno ;
ename = ena ;
job = j ;
sal = s ;
comm = c;
}
public void setEmpno(int eno){
empno = eno ;
}
public void setEname(String ena){
ename = ena ;
}
public void setJob(String j){
job = j ;
}
public void setSal(double s){
sal = s ;
}
public void setComm(double c){
comm = c ;
}
public int getEmpno(){
return empno ;
}
public String getEname(){
return ename ;
}
public String getJob(){
return job ;
}
public double getSal(){
return sal ;
}
public double getComm(){
return comm ;
}
public double salary(){
return sal + comm ;
}
public double income(){
return this.salary() * 12 ;
}
public String getInfo(){
return "雇员信息:" + "\n" +
"\t|-编号:" + this.getEmpno() + "\n" +
"\t|-姓名:" + this.getEname() + "\n" +
"\t|-职位:" + this.getJob() + "\n" +
"\t|-工资:" + this.getSal() + "\n" +
"\t|-佣金:" + this.getComm() + "\n" +
"\t|-月薪:" + this.salary() + "\n" +
"\t|-年薪:" + this.income() + "\n" ;
}
}
public class Hello{
public static void main(String args[]){
Person per = new Person() ; //声明并实例化对象
per.name = "张三" ;
per.age = 30 ;
per.tell() ;
Emp emp = new Emp(7500,"汪德圣","经理",3000.0,200.0) ;
System.out.println(emp.getInfo());
}
}
第2个回答  2013-07-07
一个class类对应一个class文件。
第3个回答  2013-07-08
不是,看你文件里有几个类。
第4个回答  2013-07-08
不对能生成多个CLASS