Java学习笔记(四)


学习内容来自于mooc中华东师范大学课程Java核心技术。

当所有Java类放置在同一个目录下时,类之间的相互调用无需显式声明。但是这样会:

  • 同一个目录下文件过多,且文件名称不可重复
  • 文件过多,查找和修改不方便

Java支持多个目录放置文件,通过package、import、classpath和jar等机制配合使用,可以跨目录放置和调用Java类。

package:

package和C++的namespace类似。
在Java类文件中第一句话给出包的名称。
比如:我在当前项目下创建一个子目录文件夹,命名为courseTest。那么在该文件夹下创建的文件第一行都会有一句:

package courseTest;

否则就会报错。

包名:和目录层次一样
类的全称:包名+类名

如果我定义一个类,命名为Test。
那么这个类全称则为 courseTest.Test。
这个文件夹的名字就可以称为包(package)名。

包名尽量唯一,需要和目录层次一样。

import:

相当于C++中的include。
若要引用在其它目录下的包,或者Java本身的包,就需要使用import。
按刚刚的例子,如果当前文件和courseTest文件夹在同一目录下,那么引用courseTest.Test类的规则为:

import courseTest.Test;
// 或者 import courseTest.*; 这句话可以引用courseTest下所有文件,但是不包括子文件夹

引用完成后,使用方法和之前正常使用没有差别,写类全称也无妨。
注意:

  • import必须放在package后面,类定义之前
  • 多个import顺序无关
  • 可以用*来引用一个目录下所有类文件,但是不包含其子目录内的文件
  • import尽量准确,不推荐使用*
  • 当有两个同名类需要使用时,可以通过import引用其中一个,另一个写全称。

jar:

一种扩展名为jar的文件,用于Java可执行文件的传播,实际上是一组class文件的压缩包。
class文件是java文件编译生成的。
项目引入一个jar文件,就可以使用jar文件中所有类(.class文件),无需类的源码(.java文件)。

优势:

  • 方便传播
  • 简化目录
  • 保护源码
  • 易于版本控制

命令行编译运行:

类名(全称)文件名文件全路径
A.B.CC.javac:\m1\A\B\C.java
D.E.FF.javac:\m2\D\E\F.java
G.HH.javac:\m3\G\H.java

其中,D.E.F 引用了 A.B.C 。
G.H 引用了 D.E.F ,没有直接引用 A.B.C,但是属于间接引用,仍然需要给出路径

编译运行指令为:

类名(全称)命令
A.B.C编译 X>javac c:\m1\A\B\C.java
A.B.C运行 X>java -classpath .;c:\m1 A.B.C
D.E.F编译 X>javac -classpath .;c:\m1 c:\m2\D\E\F.java
D.E.F运行 X>java -classpath .:c:\m1;c:\m2 D.E.F
G.H编译 X>javac -classpath .:c:\m1;c:\m2 c:\m3\G\H.java
G.H运行 X>java -classpath .:c:\m1;c:\m2;c:\m3 G.H

其中X>表示命令行

编译命令解释:
javac (-classpath .;c:\m1) c:\m1\A\B\C.java
javac表示编译。
(-classpath .;c:\m1)表示引用类的路径,不用加括号,其中 -classpath 可以简写为 -cp 。后面的路径可以解释成:

  • . 为当前路径
  • ; 多个路径的分号
  • c:\m1 引用类的路径

运行命令解释:
java -classpath .:c:\m1;c:\m2 D.E.F
java表示运行。
(-classpath .;c:\m1)表示引用类的路径加上本类路径,不用加括号,其中 -classpath 可以简写为 -cp 。后面的路径可以解释成:

  • . 为当前路径
  • ; 多个路径的分号
  • c:\m1 引用类的路径
  • c:\m2 本类路径

访问控制

java访问权限

有四类:

  • private,私有的,只能本类访问
  • default, 默认的,同一个包内访问(可忽略不写)
  • protected,同一个包、子类均可访问
  • public,公开的,所有类可以访问

适用范围:

  • 都可以用来修饰成员变量、方法、构造函数
  • default和public可以修饰类
同一个类同一个包不同包的子类不同包的非子类
private
default
protected
public
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三更鬼

谢谢老板!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值