包机制
问题:当定义了多个类的时候,可能会发生类名的重复问题。
在java中采用包机制处理开发者定义的类名冲突问题。
怎么使用java的包机制呢?
使用package 关键字。package 包名。
问题:
javac PackDemo1.java编译没有问题。java PackDemo1 运行出错。
错误原因分析:
在当前目录下找不到有pack目录,更加找不到pack目录下面的PackageDemo1.java文件。
解决办法:
自己在当前目录下新建一个pack目录。执行Java pagk.PackageDemo1命令。(包其实就是文件夹).
存在的问题:使用包机制的话,我们是否每次都要自己创建一个文件夹呢?
解决:
在编译的时候则可以指定类文件存放的文件夹了。
javac -d . PackageDemo1.java-d 后面跟着就是包名,指定包存放的路径。
包的优点
防止类文件冲突。使源文件与类文件分离,便已软件最终发布。
注意细节
一个java类只能定义在一个包中。包语句肯定是描述类的第一条语句。
包机制引发的问题
有了包之后访问类每次都需要把包名和类名写全。
解决:使用import语句。
格式:import 包名.类名;
注意细节:
如果想使用一个包中的许多类时,这时不需要多条的导入语句,使用“*”号通配符代表所有的类。使用*时不能导入包中的子类包的class文件。import语句可以是多条.访问修饰符
访问修饰符是用来控制类、属性、方法的可见性的关键字称之为访问修饰符。
public 一个类中,同一包中,子类中,不同包中protected 一个类中,同一包中,子类中default 一个类中,同一包中private 一个类中(修饰类成员)类成员 成员使用private修饰只在本类中使用。如果一个成员没有使用任何修饰符,就是default,该成员可以被包中的其他类访问。protected成员被protected修饰可以被包中其他类访问,并且位于不同包中的子类也可以访问。public修饰的成员可以被所有类访问。 (修饰类)类 类只有两种public和默认(成员内部类可以使用private))父类不可以是private和protected,子类无法继承public类可以被所有类访问默认类只能被同一个包中的类访问Jar包
1:jar就是打包文件
jar文件时一种打包文件java active File,与zip兼容,称之为jar包
开发了很多类,需要将类提供给别人使用,通常以jar包形式提供.当项目写完之后,需要及将class字节码文件打包部署给客户。如何打包?可以使用jar命令.
2:jar命令
1:jar工具存放于jdk的bin目录中(jar.exe)
2:jar工具:主要用于对class文件进行打包(压缩)
3:dos中输入jar查看帮助
3:案例使用jar命令
将day10中的cn文件打包为名字为test.jar文件(cn 文件是使用javac -d 编译带包的class文件夹)
jar cvf test.jar cn
详细命令:
1:jar cf test.jar cn 在当前目录生成test.jar 文件,没有显示执行过程
2:jar cvf test.jar cn 显示打包中的详细信息
3:jar tf test.jar 显示jar文件中包含的所有目录和文件名
4:jar tvf test.jar 显示jar文件中包含的所有目录和文件名大小,创建时间详
细信息
5:jar xf test.jar 解压test.jar到当前目录,不显示信息
6:jar xvf test.jar 解压test.jar到当前目录,显示详细信息
7:可以使用WinRaR进行jar解压
8;将两个类文件归档到一个名为 test2.jar 的归档文件中:
jar cvf test2.jar Demo3.class Demo4.class
9:重定向
1:tvf可以查看jar文件内容,jar文件大,包含内容多,dos看不全。
2:查看jdk中的rt.jar 文件 jar tvf rt.jar
3:jar tvf rt.jar>d:\rt.txt
存在问题:
计算的程序的可变的。把会改变的程序抽取出来单独做一个方法。但是该方法不能确定运行的代码,声明为抽象的方法。创建实现类继承并实现父类的未实现的函数。为了避免子类重写父类的模版代码,需要将模版代码修饰为final
其他:
面向对象 java初学 /fei8888888/article/details/84451429
static关键字 封装、继承和多态 java初学-面向对象二 /fei8888888/article/details/84537367
抽象类、多实现、多继承 java初学-面向对象三 /fei8888888/article/details/84537551
内部类、异常 java初学-面向对象四 /fei8888888/article/details/84579208