Java学习路线-8:包的定义及使用

举报
彭世瑜 发表于 2021/08/14 01:35:50 2021/08/14
【摘要】 第23 章 : 包的定义及使用 101 包的定义 包 == 目录 “.”表示分隔子目录 package com.name.demo; public class Hello{} 1234 编译后的.class文件需要保存到指定目录中 打包处理 $ javac -d . Hello.java 1 -d 表示要生成的目录,package定义的结构 . 表示当...

第23 章 : 包的定义及使用

101 包的定义

包 == 目录
“.”表示分隔子目录

package com.name.demo;

public class Hello{}


  
 
  • 1
  • 2
  • 3
  • 4

编译后的.class文件需要保存到指定目录中

打包处理

$ javac -d . Hello.java

  
 
  • 1

-d 表示要生成的目录,package定义的结构
. 表示当前所在目录
程序执行的时候一定要带着包执行程序

$ java  com.name.demo.Hello

  
 
  • 1

102 包的导入

直接编译,让java决定编译先后顺序

$ java -d . *.java

  
 
  • 1

注意:
1、public class类名必须与文件名保持一致
2、要被其他包所使用的类要加public
3、一般一个java文件只有一个class类
4、class 类名称可以与文件名不一致,可以提供多个类,会被编译为多个class文件
而且只能被本包所访问
包名必须采用小写字母定义

导入可以使用通配符 *
不表示全部加载,会根据需要加载
会出现引用不明确问题

使用的时候直接写完整路径

import com.name.demo;

com.name.demo.Hello();

  
 
  • 1
  • 2
  • 3

导包示例

Message.java

package com.name.demo ;

public class Message{ public void printMessage(String message){ System.out.println(message); }
}


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

Demo.java

import com.name.demo.Message ;

class Demo{ public static void main(String[] args) { Message message = new Message(); message.printMessage("Hello Message") ; }
}


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

打包执行

# 编译打包文件
$ javac -d . *.java

# 执行
$ java Demo
Hello Message


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

文件目录

├── Demo.class
├── Demo.java
├── Message.java
└── com └── name └── demo └── Message.class

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

103 静态导入

JDK >=1.5

import static com.name.demo.Demo.* ;


  
 
  • 1
  • 2

Message.java

package com.name.demo ;

public class Message{ public static void echoMessage(String message){ System.out.println(message); }

}


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

Demo.java

import static com.name.demo.Message.* ;

class Demo{ public static void main(String[] args) { echoMessage("Hello Message") ; }
}


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

104 生成jar文件

jar文件: 管理class文件

步骤:
打包编译 javac -d . Message.java
打包jar jar -cvf name.jar com
-c create 创建文件
-v verbose 详细输出
-f file 要生成的jar文件

rar打开jar文件

每个.jar文件都是独立的程序路径,必须通过CLASSPATH配置
windows: 以分号分隔

$ SET CLASSPATH=.;d:\name.jar

  
 
  • 1

Mac:以冒号分隔

$ export CLASSPATH=".:/root/name.jar"

  
 
  • 1

JDK < 1.9
所有类的jar文件: rt.jar tools.jar

JDK >= 1.9 模块化设计

105 系统常用包

Java自身提供类库
第三方提供支持类库

java.lang String, Number, Object JDK 1.1自动导入
java.lang.reflect 反射机制
java.util 工具类,数据结构
java.io 输入输出
java.net 网络开发
java.sql 数据库编程
java.applet 嵌套网页执行
java.awt 图形界面GUI开发Windows位置
java.swing(JDK1.2)轻量级图形开发包

106 访问控制权限

面向对象三个特点:封装,继承,多态
访问控制权限

访问范围 private default   protected public
同包同类 true true true true
同包不同类 true true true
不同包的子类 true true 
不同包的所有类 true 

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

参考选择
属性定义 private
方法定义 public

通过子类访问protected 属性

Message.java

package com.util.a ;

public class Message{ protected String info = "message info";
}


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

TestMessage.java

package com.util.b ;

import com.util.a.Message ;

public class TestMessage extends Message{ public void showInfo(){ System.out.println(super.info); }
}


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

Demo.java

import com.util.b.TestMessage ;

public class Demo{ public static void main(String[] args) { new TestMessage().showInfo(); }
}


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

第24 章 : UML图形

107 类图

UML统一建模语言: 利用图形化的形式来实现程序类关系的描述

三层结构表示

类名称
属性 
方法

  
 
  • 1
  • 2
  • 3

抽象类属性斜体abstract

属性格式:访问权限 属性名称: 属性类型
public +
protected #
private -

方法格式:访问权限 方法名称(): 返回值

画图工具
Rational Role
PowerDesigner

子类实现接口 三角和虚线
子类继承父类 三角和实线

108 时序图

描述代码的执行流程

109 用例图

描述程序执行分配
一般出现在项目设计过程

文章来源: pengshiyu.blog.csdn.net,作者:彭世瑜,版权归原作者所有,如需转载,请联系作者。

原文链接:pengshiyu.blog.csdn.net/article/details/102848339

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。