1  MS-DOS 切换文件夹

如果需要切换到其他分区的目录,需要先切换到那个分区,必须先
e:
然后就可以任意目录跳转了

2 使用同一文件夹下其他文件的类出错

我的两个文件java文件在同一目录下,但是javac 调用其他文件的那个文件时,会报错,找不到符号。

根据下面转载的帖子,我推测是我的CLASSPATH或者PATH值设置的有问题

发现时CLASSPATH的变量值忘了加".;"

-----------------------------------------------------------------------------分割线---------------------------------------------------------------------------------------

如何使用其他 java 文件里定义的类

[转帖]http://zhongwei-leg.iteye.com/blog/1084500

在同一个目录下定义两个类:

Main.java

Java代码
  1. public class Main{
  2. publicstaticvoid main(String[] args){
  3. System.out.println("main()");
  4. Person zhongwei = new Person("zhongwei");
  5. System.out.println(zhongwei.name);
  6. }
  7. }

Person.java

Java代码
  1. public class Person{
  2. String name;
  3. Person(String name){
  4. this.name = name;
  5. }
  6. }

在该目录下执行:

Java代码
  1. javac Main.java

我会看到,该目录下的文件由 2个变为了 4 个:

Java代码
  1. Sun-Zhongweis-MacBook-Pro:test_multi_class zhongwei$ ls -la
  2. total 32
  3. drwxr-xr-x 6 zhongwei staff204 Jun1317:43 .
  4. drwxr-xr-x 3 zhongwei staff102 Jun1317:19 ..
  5. -rw-r--r-- 1 zhongwei staff510 Jun1317:31 Main.class
  6. -rw-r--r-- 1 zhongwei staff203 Jun1317:31 Main.java
  7. -rw-r--r-- 1 zhongwei staff269 Jun1317:31 Person.class
  8. -rw-r--r-- 1 zhongwei staff98 Jun1317:31 Person.java

执行:

java Main

输出为:

Java代码
  1. Sun-Zhongweis-MacBook-Pro:test_multi_class zhongwei$ java Main
  2. main()
  3. zhongwei

对比 Python 来看,java 使用同目录下的不同文件的类时,不需要 import 那个文件的名字,直接使用即可。

猜测,java 会自动导入一个 path 列表中的所有文件定义的类,而当期目录是默认自动导入的。

几个疑问:

1。类名前的这个 public 的作用?

一个类要在另外一个文件中被调用,定义时一定要加上 public 么?

在网上搜到这样一段话:

文件名要与public类同名、一个文件只能有一个public类、可以有其它类的声明。不一定非要声明成内部类。不建议一个文件内声明两个类,除非客观需要那样

我修改了一下 Person.java 的代码,将 public 删掉。同时删除之前生产的两个 .class 文件,重新执行 javac Main.java.

再运行 java Main

执行结果同之前的一样。也就是说,不加这个 public 也可以。再去掉 Main.java 中的 public,也没有影响。。。

娃哈哈哈哈。。。Google 了半天终于找到一个解释了

写道
http://xahlee.org/java-a-day/access_specifiers.html

For classes, only the “public” access specifier can be used on classes. Basically, Java has this “One Class Per File” paradigm. That is, in every java source code file, only one class in the file is public accessible, and that class must have the same name as the file. (For Example, if the file is 〔xyz.java〕, then there must be a class named “xyz” in it, and that is the class that's public.) Optionally, the class can be declared with “public” keyword.

If you use any other access specifier on classes, or declare more than one class “public” in a file, the compiler will complain.

也就是说,凡是与 java 文件同名的类,即使不加上 public,他也是 public 类型的。但是这种解释没有 Thinking In Java 中的有说服了,即, 不加 public 前缀的 Class 是 friendly 的,只能在同 package 中可见

之所以每个 java 源文件要有一个与文件同名的类,是为了方便编译器查找方便,提高编译速度。

若没有任何 public class,则该文件名可以随意起。

2. 如何导入其他文件夹的类?

估计和 Python 一样,把目标目录加入搜索路径即可。然后 import。

-----------------------------------------------------------------------------分割线---------------------------------------------------------------------------------------

学习《21天学通Java 6》(二)相关推荐

  1. 21天学通Java学习笔记-Day01

    21天学通java 中文第6版 下载地址:点击打开链接 Day01: 命令行查看和设置classpath: 查看:echo %classpath% 设置:set classpath = %classp ...

  2. 21天学通java第7版pdf_21天学通Java.第7版.pdf

    <21天学通Java(第7版)>是初学者学习Java编程语言的畅销经典教程,循序渐进地介绍了Java编程语言知识,并提供了丰富的实例和练习:同时全面涵盖了Java 8这一新标准以及与And ...

  3. 《21天学通Java(第6版)》—— 1.4 属性和行为

    本节书摘来异步社区<21天学通Java(第6版)>一书中的第1章,第1.4节,作者:[美]Rogers Cadenhead,更多章节内容可以访问云栖社区"异步社区"公众 ...

  4. 《21天学通Java(第7版)》—— 第2章 Java编程基础 2.1 语句和表达式

    本节书摘来异步社区<21天学通Java(第7版)>一书中的第2章,第2.1节,作者: [美]Rogers Cadenhead(罗格斯 卡登海德),更多章节内容可以访问云栖社区"异 ...

  5. 21天学通Java学习笔记-Day12(MYsql-JDBC)

    JDBC MYQL 基础: 用命令行进入MYSQL:shell > mysql -h host(主机) -u user(用户名) -p 回车,等待输入密码 退出MYSQL:mysql >  ...

  6. 21天学通Java学习笔记-Day04

    Day04: 静态数组是一组对象,每个元素都是一个对象,所以用 new 创建新的数组实例. class test{public static void main(String[]args){a[] a ...

  7. 21天学通Java学习笔记-Day02

    Day02: java 程序是由 类,对象 组成.对象和类是由 方法,变量组成.方法是由 语句,表达式 组成.表达式是由 运算符 组成. 3种变量: 实例变量:定义对象的属性. 类 变 量 : 定义类 ...

  8. 21天学通Java学习笔记-Day06

    Day06: 限定符: *限定符 public ,protected 和 private 用于控制类,方法和变量的访问 *限定符 static 用于创建类方法和类变量 *限定符 final 用于固定( ...

  9. 21天学通Java学习笔记-Day11(常用类)

    java 常用类(重点): String 类: String 类代表字符串.创建以后不能更变. public class tests { public static void main(String[ ...

最新文章

  1. Hyper-V虚拟化测试05防火墙及证书配置
  2. 初学者如何开发出高质量J2EE系统
  3. 大话PM | 产品经理必备利器——UML
  4. CF1042E Vasya and Magic Matrix 期望dp + 推公式
  5. 数据结构之二叉树的逻辑结构和遍历
  6. 简单的C语言开源软件,自己写的一个简单的数据库...完整开源...
  7. 公链史记 | 从鸿蒙初辟到万物生长的十年激荡
  8. python 字符串分割
  9. 之前出的一道背包题面,暂无题解
  10. rk3399_android7.1耳机拔插ADC检测
  11. 2014 找工作总结
  12. 索尼SONY 820E摄像机内置64G存储卡无法识别拆MMC芯片完整恢复数据
  13. python机器学习实战_Python机器学习实战案例
  14. java和vue的狱警管理系统监狱系统狱务管理系统
  15. begin tran,commit tran和rollback tran的用法
  16. android版《手工接水管》--unity3d制作的
  17. word有符号时 对齐_对齐Excel货币符号时遇到问题
  18. php怎么给视频加水印,视频怎么加水印 添加文字水印和图片水印 给视频加水印的软件...
  19. 【产品】建立墨菲定律思维模式
  20. 台式计算机怎么加一个硬盘,台式机加装一个机械硬盘图解 但建议直接在windows下...

热门文章

  1. vue ajax跨域提交,vue ajax跨域请求
  2. 判断圆形三角形面积大小
  3. java将字符串转成int
  4. 【课程记录·本】WUT数据结构与算法综合实验 | 基于C++MFC的欢乐连连看游戏的设计与实现(附下载链接)
  5. 解决桌面图标标签变得不透明
  6. 【统计学习系列】多元线性回归模型(三)——参数估计量的性质
  7. 一级缓存、二级缓存、三级缓存
  8. 【剑桥摄影协会】手持拍照的相机抖动改善
  9. linux mysql插入数据乱码_linux mysql数据库中文乱码
  10. 小米10s真的划算吗?