开发者学堂课程【Scala 核心编程-基础:包介绍和 java 包回顾】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/609/detail/8953
包介绍和 java 包回顾
目录:
一、包
二、演示 java 打包解决文件名冲突
三、Java 的内容做一个简短的回顾
一、包
在 Scale 里,包的地位比较高,功能在 java 基础上,做了很大的扩展
应用场景,了解包的用法
现在有两个程序员共同开发一个项目,程序员 xiaoming 希望定义一个类取名 Dog ,程序员 xiaoqiang 也想定义一个类也叫 Dog。两个程序员为此还吵了起来,怎么办?
回顾:
1. Java 中,包的三大功能:
(1) 区分相同名字的类
(2) 当类很多时,可以很好的管理类
(3) 控制访问范围
2. Java 打包的命令
(1) 打包基本语法
package com. atguigu;
(2) 打包的本质分析
在编译和使用的时候,用包的结构创健不同的文件夹来保存类文件,画出示意图,与 scala 比较。
java 包,类源码,文件路径和.class 文件的关系图
java 对包的要求
1. 类的源文件,需要和包对应的文件路径匹配
2. 当我们编译 Dog 类,后生成对应的.class 文件,编译器会将该.class 文件也放在和包对应的文件路径下
有一个源文件,名字为 Dog.java 文件。打包路径用 package com.atguige.Dog,路径不能乱放,可能会报错。内容为 public Dog{}
在此包下创建 javapackage,然后创建 Dog 文件
自动生成代码 package com.atguigu.chaptero7 .javapackage;
内容 public dog{}必须写在此目录下,不然会报错
点击 dog 文件右键浏览目录,找路径,从项目的根目录开始,路径从 com 开始计算
在后面加上.hello,报错
package com.atguigu.chaptero7.javapackage;
public class Dog {
public static void main( string[] args) {
system.out.println( "hello dog" );}
}
运行此段代码,看对应的字节码位置
后面的路径一样,但是前面是从 classes 开始,如果字节码不放在这,就不能跑代码。
二、 演示 java 打包解决文件名冲突
快速演示
建立一个包 javapackage
小明和小红用同一个类名,为了区分,打两个包,一个名为 xh,一个名为 xm
在里面分别创建两个 java 类,Tiger,类名并不冲突
然后再上一级包 javapackage 下创建 TestTiger,用来测试他们各自的 tiger 文件。在 Java 中不能使用类型推导,所以路径必须写清楚,代码如下:
package com. atguigu.chapter07.javapackage;
public class TestTiger {
public static void main(string[ ] args) {
//使用 xm 的 Tiger
com.atguigu.chapter07.javapackage.xm.Tiger tiger01 = new com.atguigu.chapter07.javapackage.xm.Tiger();
//使用 xh 的 Tiger
com.atguigu.chapter07.javapackage.xh.Tiger tiger02 = new com.atguigu.chapter07.javapackage.xh.Tiger();
system.out.println("tiger01=" + tiger01 + “tiger02=" + tiger02);
}}
运行结果:
01中是小明,02中是小红,运行结果成功
总结:
1. 回顾-Java 如何引入包
语法: import 包;
比如 import java.awt.*;
引入一个包的主要目的是要使用该包下的类
比如 import java.util.Scanner;就只是引入一个类 scanner
2. 回顾-Java 包的特点
java 中包名和源码所在的系统文件目录结构要一致,并且编译后的字节码文件路径也和包名保持一致,如果不一致就会报错。
三、 Java 的内容的回顾
1. 包的引出
首先看应用场景,现在有两个程序员共同开发一个项目,程序员 xiaoming 希望定义一个类取名 Dog ,程序员xiaoqiang也想定义一个类也叫 Dog。两个程序员为此还吵了起来,怎么办?
使用包即可以解决这个问题。
2. 打包的命令
(1) 区分相同名字的类
(2) 当类很多时,可以很好的管理类
(3) 控制访问范围
3. 打包基本语法
package com.atguigu;
4. 打包的本质分析
本质是创建不同的文件夹来保存类文件,画了示意图来分析。
5. 快速回顾案例
使用打包技术解决上述的问题,写了一段代码,来分析引入问题的解决方案。
代码如下:
package com. atguigu.chapter07.javapackage;
public class TestTiger {
public static void main(string[ ] args) {
//使用 xm 的 Tiger
com.atguigu.chapter07.javapackage.xm.Tiger tiger01 = new com.atguigu.chapter07.javapackage.xm.Tiger();
//使用 xh 的 Tiger
com.atguigu.chapter07.javapackage.xh.Tiger tiger02 = new com.atguigu.chapter07.javapackage.xh.Tiger();
system.out.println("tiger01=" + tiger01 + “tiger02=" + tiger02);
}}






