day09面向对象-

包机制

 

问题:当定义了多个类的时候,可能会发生类名的重复问题。

java中采用包机制处理开发者定义的类名冲突问题。

怎么使用java的包机制呢?

  1. 使用package 关键字。
  2. package 包名。
  3. day09面向对象-_第1张图片

     

问题:

  1. javac PackDemo1.java编译没有问题。
  2. java PackDemo1 运行出错。

 day09面向对象-_第2张图片

 

错误原因分析:

在当前目录下找不到有pack目录,更加找不到pack目录下面的PackageDemo1.java文件。

解决办法: 

  1. 自己在当前目录下新建一个pack目录。
  2. 执行Java pagk.PackageDemo1命令。(包其实就是文件夹).

存在的问题:使用包机制的话,我们是否每次都要自己创建一个文件夹呢?

解决:

在编译的时候则可以指定类文件存放的文件夹了。

javac -d . PackageDemo1.java    -d 后面跟着就是包名,指定包存放的路径。

 

包的优点

  1. 防止类文件冲突。
  2. 使源文件与类文件分离,便已软件最终发布。

注意细节

  1. 一个java类只能定义在一个包中。
  2. 包语句肯定是描述类的第一条语句。

包机制引发的问题

有了包之后访问类每次都需要把包名和类名写全。

 

解决:使用import语句。

格式 import 包名.类名 ;

 

注意细节:

  1. 如果想使用一个包中的许多类时,这时不需要多条的导入语句,使用 *”号通配符代表所有的类。
  2. 使用*时不能导入包中的子类包的class文件。
  3. import语句可以是多条.

访问修饰符

访问修饰符是用来控制类、属性、方法的可见性的关键字称之为访问修饰符。

 day09面向对象-_第3张图片

 

  1. public 一个类中,同一包中,子类中,不同包中
  2. protected  一个类中,同一包中,子类中
  3. default 一个类中,同一包中
  4. private 一个类中

 

  1. (修饰类成员)类成员
    1. 成员使用private修饰只在本类中使用。
    2. 如果一个成员没有使用任何修饰符,就是default,该成员可以被包中的其
    3. 他类访问
    4. protected成员被protected修饰可以被包中其他类访问,并且位于不同
    5. 包中的子类也可以访问
    6. public修饰的成员可以被所有类访问
  2. (修饰类)
    1. 类只有两种public和默认(成员内部类可以使用private))
    2. 父类不可以是privateprotected,子类无法继承
    3. public类可以被所有类访问
    4. 默认类只能被同一个包中的类访问

Jar

1jar就是打包文件

jar文件时一种打包文件java active File,zip兼容,称之为jar

开发了很多类,需要将类提供给别人使用,通常以jar包形式提供.当项目写完之后,需要及将class字节码文件打包部署给客户。如何打包?可以使用jar命令.

2jar命令

1jar工具存放于jdkbin目录中(jar.exe)

2jar工具:主要用于对class文件进行打包(压缩)

3dos中输入jar查看帮助

3案例使用jar命令
day10中的cn文件打包为名字为test.jar文件(cn 文件是使用javac -d 编译带包的class文件夹)

jar cvf test.jar cn

详细命令:

1jar cf test.jar cn 在当前目录生成test.jar 文件,没有显示执行过程

2jar cvf test.jar cn 显示打包中的详细信息

3jar tf test.jar  显示jar文件中包含的所有目录和文件名

4jar tvf test.jar 显示jar文件中包含的所有目录和文件名大小,创建时间详

细信息

5jar xf test.jar  解压test.jar到当前目录,不显示信息

6jar xvf test.jar 解压test.jar到当前目录,显示详细信息

7:可以使用WinRaR进行jar解压

8;将两个类文件归档到一个名为 test2.jar 的归档文件中:

jar cvf test2.jar Demo3.class Demo4.class

9:重定向

1tvf可以查看jar文件内容,jar文件大,包含内容多,dos看不全。

2:查看jdk中的rt.jar 文件 jar tvf rt.jar

3jar tvf rt.jar>d:\rt.txt

模板设计.

设计模式就是为了解决某类事情提出的解决方法。

案例:计算一段程序的执行时间

 day09面向对象-_第4张图片

 

存在问题:

  1. 计算的程序的可变的。
  2. 把会改变的程序抽取出来单独做一个方法。
  3. 但是该方法不能确定运行的代码,声明为抽象的方法。
  4. 创建实现类继承并实现父类的未实现的函数。
  5. 为了避免子类重写父类的模版代码,需要将模版代码修饰为final

 day09面向对象-_第5张图片

 

 

案例二:炒菜做饭

 

 day09面向对象-_第6张图片

 

转载于:https://www.cnblogs.com/yukai123/p/6991957.html

你可能感兴趣的:(day09面向对象-)