代码1访问代码2

代码1:

class Demo3 {
public static void main(String[] args) {
Demo4 a = new Demo4();
a.print();
}
}

代码2:

class Demo4{
public void print(){
System.out.println("这个是Dmeo4的print方法...");
}
}

运行结果:



如果把他们都放入不同的包,还能访问的到吗?

创建了分别的包:   代码3 访问 代码4

代码3:

package a;
class Demo3 {
public static void main(String[] args) {
Demo4 a = new Demo4();
a.print();
}
}

代码4:

package b;
class Demo4{
public void print(){
System.out.println("这个是Dmeo4的print方法...");
}
}

结果是编译Demo3就报错



上面说找不到符号,就是找不到Demo4       而Demo4是在b包的 下面我将代码3改下(代码4不用改), 看看能不能访问。

这时候就要用到导包语句;

导包语句的格式:
import 包名.类名;   (导入xxx包中某个类)

导包语句要注意的细节:
1. 一个java文件中可以出现多句导包语句。
2. "*"是 导包语句的通配符。可以匹配任何 的类名。
3. import aa.*; 是不会作用于aa包下面的子包的。

推荐使用:import 包名.类名;   因为使用*通配符会导致结构不清晰。

什么时候使用import语句: 
1. 相互访问的两个类不是在同一个包下面,这时候就需要使用到导包语句。
2. java.lang 是默认导入 的,不需要我们自己导入。

修改后的代码3:

package a;
import b.Demo4;
class Demo3 {
public static void main(String[] args) {
Demo4 a = new Demo4();
a.print();
}
}

然后运行:

Demo3.java:2: b.Demo4 在 b 中不是公共的;   这个其实很简单。。这关于权限的问题,我会在下次介绍。

修改后的代码4:

package b;
public class Demo4{
public void print(){
System.out.println("这个是Dmeo4的print方法...");
}
}

类名前面加上 public  这样Demo3就有权限访问了。

运行结果:

在JDK中,不同功能的类都放在不同的包中,其中Java的核心类主要放在java这个包及其子包下,Java扩展的大部分类都放在javax包及其子包下。为了便于后面的学习,接下里简单介绍Java语言中的常用包。

-java.lang:包含了Java语言的核心类,如String、Math、System和Thread类等,使用这个包中的类无须使用import语句导入,系统会自动导入这个包下的所有类。

-java.util:包含了Java中大量工具类、集合类等,例如Arrays、List、Set等。

-java.net:包含Java网络编程相关的类和接口。

-java.io:包含了Java输入、输出有关的类和接口。

-java.awt:包含用于构建图形界面(GUI)的相关类和结构。

等等我就不一一介绍了,自己查看API吧~

下面我来体现下导入java.util.Arrays; 吧~

代码5

import java.util.Arrays;
class Demo5 {
public static void main(String[] args) {
int[] arr = {8,5,7};
Arrays.sort(arr);
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+" ");
}
}
}

导包后就可以使用util.Arrays  了...

运行结果:

5 7 8

交流企鹅:654249738,和自学者交流群:517284938

JAVA_SE基础——57.有了包之后类与类之间的访问使用import语句的更多相关文章

  1. Java基础---IO(三)--IO包中的其他类

    第一讲     对象序列化 一.概述 将堆内存中的对象存入硬盘,保留对象中的数据,称之为对象的持久化(或序列化).使用到的两个类:ObjectInputStream和ObjectOutputStrea ...

  2. 黑马程序员——【Java基础】——File类、Properties集合、IO包中的其他类

    ---------- android培训.java培训.期待与您交流! ---------- 一.File类 (一)概述 1.File类:文件和目录路径名的抽象表现形式 2.作用: (1)用来将文件或 ...

  3. java基础课程笔记 static 主函数 静态工具类 classpath java文档注释 静态代码块 对象初始化过程 设计模式 继承 子父类中的函数 继承中的构造函数 对象转型 多态 封装 抽象类 final 接口 包 jar包

    Static那些事儿 Static关键字 被static修饰的变量成为静态变量(类变量) 作用:是一个修饰符,用于修饰成员(成员变量,成员方法) 1.被static修饰后的成员变量只有一份 2.当成员 ...

  4. JAVA_SE基础——6.标识符&关键字

    学会写helloworld之后,  我们就开始来认识标识符&关键字 一.标识符 标识符是指可被用来为类.变量或方法等命名的字符序列,换言之,标识符就是用户自定义的名称来标识类.变量或方法等.更 ...

  5. 代码片段:基于 JDK 8 time包的时间工具类 TimeUtil

    摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! “知识的工作者必须成为自己时间的首席执行官.” 前言 这次泥瓦匠带来的是一个好玩的基于 JDK ...

  6. 【JAVA零基础入门系列】Day11 Java中的类和对象

    今天要说的是Java中两个非常重要的概念--类和对象. 什么是类,什么又是对象呢?类是对特定集合的概括描述,比如,人,这个类,外观特征上,有名字,有年龄,能说话,能吃饭等等,这是我们作为人类的相同特征 ...

  7. JAVA_SE基础——26.[深入解析]局部变量与成员变量的区别

    黑马程序员入学blog ... 如果这章节很难懂的话应该返回去先看  JAVA_SE基础--10.变量的作用域 定义的位置上区别: 1. 成员变量是定义在方法之外,类之内的. 2. 局部变量是定义在方 ...

  8. JAVA_SE基础——8.基本数据类型

    基本数据类型有:整数类型.浮点类型.字符类型.布尔类型 整数类型 整数类型用来存储整数数值,即没有小数部分的数值.与C.C++语言相同,整数在Java语言中有3种表示形式:十进制.八进制和十六进制. ...

  9. JAVA_SE基础——7.常量&变量

    上一篇,我讲了标识符&关键字    这篇我来解释下变量&常量~~~ 变量与常量这两个概念相信大家都不会感到陌生,在数学中就已经涉及了变量与常量.理解变量与常量,可以举这样一个例子: 例 ...

随机推荐

  1. CodeIgniter怎么引入公共的头部或者尾部文件(实现随意引入或分区域创建header.html,bodyer.html,footer.html)

    除非你天赋异禀,凡事基本对任何人来说都是开头难的,且开头的事情如果没有做好 往往会打掉一个人对于某件事的希望及其激情,所以咱们先从容易的事情开始慢慢建立自己 信心.后面的事情咱们再慢慢推进. 如果你是 ...

  2. java 实现登录验证码 (kaptcha 验证码组件)

    验证码的作用: 1.防止广告机注册和发帖.评论.2.防止暴力破解密码,特别是有管理员权限的密码. 在这里介绍一种非常实用的验证码生成工具:kaptcha 这个工具,可以生成各种样式的验证码,因为它是可 ...

  3. python数据类型——字典类型

    字典(dictionary) python中唯一的映射类型,采用键值对(key-value)的形式储存数据,python对key进行哈希函数运算,所以key值必须是可哈希的,可哈希表示key必须是不可 ...

  4. 斐波拉契数列(Fibonacci)--用生成器生成数列

    斐波那契数列(Fibonacci sequence),又称黄金分割数列.因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为"兔子数列&qu ...

  5. 浅谈API安全设计

    一.简述 安全是恒久的话题,如果不注意防范,会带来很严重的后果.比如: 1.接口被大规模调用消耗系统资源,影响系统的正常访问,甚至系统瘫痪 2.数据泄露 3.伪造(篡改)数据,制造垃圾数据 4.App ...

  6. 使用MyBatis 框架犯的错误

    最近做项目,数据层使用的是MyBatis框架,在使用过程中,犯了一些错误: resultMap和resultType书写错误导致问题 resultMap和resultType二者用法不一样: resu ...

  7. js 显示数字不断增加

    一个小小的函数,很容易看懂,就不过多解释了,只为下次用时直接用就ok了... function countUp(count) { var div_by = 100, speed = Math.roun ...

  8. async generator promise异步方案实际运用

    es7 async方案 /******************async***********************/ var timeFn=function(time){ return new P ...

  9. Mycat 读写分离详解

    Mycat 的读写分离是依赖数据库级别的数据主从同步的基础上来实现的(Mysql 的主从配置链接),Mycat 的读写分离是在 schema.xml 配置的 dataHost 节点的 balance ...

  10. 用bat文件启动mongodb

    bat文件是dos下的批处理文件.批处理文件是无格式的文本文件,它包含一条或多条命令.它的文件扩展名为 .bat 或 .cmd.在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用cm ...