黑马程序员技术交流社区
标题:
一个.java中类多少的问题?
[打印本页]
作者:
hejinzhong
时间:
2014-8-17 21:31
标题:
一个.java中类多少的问题?
一个.java文件中可以有多个 类(不是内部类),但只能一有一个public的类,并且 public的类名必须与文件相一致。 这句话怎么理解,是在编译时怎么处理的?
作者:
华谦
时间:
2014-8-17 21:39
我表示也不懂,坐等高手
作者:
Kikyou
时间:
2014-8-17 21:52
一个.java文件中可以写多个class,但是只能有一个class是public修饰的,且这个class的名字必须和文件名相同,在编译的时候每一个class都会生成一个对应的.class文件。
作者:
酋长第一
时间:
2014-8-17 22:10
main方法被jvm调用,所有权限要足够大。所以用public
只是为了方便使用工具(EditPlus Eclipse,等)方便编译运行
如果你用记事本 主函数所在类可以不用跟.java文件名相同,
你可以试试 javac 文件名.java java 主函数所在类名
同时一个学生类中的get和set方法不都是public么,怎么可能只有一个public
作者:
姜佳文
时间:
2014-8-17 22:18
可以有很多类,编译的时候会把这些类挨个编译成.class,但是一个文件中的类只能有一个class被public修饰里面放主方法
作者:
hejinzhong
时间:
2014-8-18 00:19
酋长第一 发表于 2014-8-17 22:10
main方法被jvm调用,所有权限要足够大。所以用public
只是为了方便使用工具(EditPlus Eclipse,等)方便编 ...
大姐,说的是一个.java中有多个类,不是一个类中有多个方法!
作者:
阳光的嘉主角
时间:
2014-8-18 09:28
public class Test {
public static void main(String[] args) {
makeShape(14);
}
public static void makeShape(int needLength) {
if (needLength > 30) {
System.out.println("不要太过分!日");
return;
}
for (int i = 0; i < needLength; i++) {
for (int j = i; j < needLength-1; j++) {
System.out.print(" ");
}
for (int j = 0; i >= j; j++) {
System.out.print("* ");
}
System.out.println();
}
for (int i = 0; i < needLength; i++) {
for (int j = 0; i >= j; j++) {
System.out.print(" ");
}
for (int j = i; j < needLength-1; j++) {
System.out.print("* ");
}
System.out.println();
}
}
private int x = 100; // 成员变量 / 属性 / 字段 指的都是它 名字好几个呢
// 叫函数的是它 叫方法的也是它
public void 呵呵() {
int xx = x; // 这里的xx 叫 局部变量 , 必须初始化值 什么叫初始化? 你就理解给它个默认值
System.out.println(xx);
}
public void hehe() {
}
public Test() {
System.out.println("无参构造函数");
}
public Test(int x) {
System.out.println(x);
System.out.println("有参构造函数1");
}
public Test(int x, int y, int z) {
System.out.println(x + "" + y + "" + z);
System.out.println("有参构造函数2");
}
public Test(int x, int y) {
System.out.println(x + "--" + y);
System.out.println("有参构造函数3");
}
}
/**
* 单例 1
*
* @Description:饿汉
*/
c
lass Single01 { // 不能被public修饰 public class Single01 是错误的
private Single01() {
}
private static Single01 single = new Single01();
public static Single01 getInstance() {
return single;
}
}
/**
* 单例 2
*
* @Description:懒汉
*/
class Single02 { // 不能被public修饰 public class Single02 是错误的
private Single02() {
}
private static Single02 single = null;
public static Single02 getInstance() {
if (single == null) {
single = new Single02();
}
return single;
}
}
作者:
许愿じ☆VE杰
时间:
2014-8-21 07:25
类的前面加public是用来表示该类为公有的,也就是在整个程序里都可以访问到它。但是要注意的是,如果将一个类声明成public,则也要将文件名称取成和这个类一样的名称,所以说在一个JAVA文件里,最多只能有一个publicd的类,否则.java的文件便无法命名。
作者:
136616244
时间:
2014-8-21 07:50
人家定义的,没有为什么 就好像定义标识符的规则一样。
其实一个文件名只能有一个public类是为了让虚拟机更快的找到程序的入口,因为一个文件里的main函数必须要定义在public类里 否则运行的时候会出错,不是编译时期哦,楼主可以试试看
作者:
恣意的豆腐
时间:
2014-8-21 07:54
方便找到执行切入点
作者:
wfaly
时间:
2014-8-21 13:39
谢谢 楼主 分享..
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2