Java小白翻身教程-如何引用外部类

简介: Java小白翻身教程-如何引用外部类

上一节:Java小白翻身教程-包的作用


现在StringUtil已经写好了,我们希望在Demo里面引用它,有两种方法。


步骤 1 全限定名

为了简单起见,我们就不给Demo加package了,这样可以直接在Editplus里面快速运行。


全限定名,就是除去CLASSPATH,剩下的路径全给它写上,就像这样:


class Demo {
   public static void main(String[] args){
    tool.StringUtil.newLine("StringUtil -> newLine");
          if(true) return; //抖个机灵
    Customer.pay();
    System.out.println(Customer.version);
    Customer c1 = new Customer();
    Customer c2 = new Customer();
    c1.name = "亚瑟";
    c2.name = "安其拉";
    c1.eat();
   }
}


步骤 2 编译,报错,欧耶~

39.png


步骤 3 访问权限修饰符

思考一个问题,为什么main方法可以被调用?我们发现每一个main方法,都会有一个public修饰符来修饰,所以,我们给StringUtil也加上public。

40.png


ctrl+1,重新编译,记住了,每次修改完源代码,都要重新编译!

ctrl+1,重新编译,记住了,每次修改完源代码,都要重新编译!

ctrl+1,重新编译,记住了,每次修改完源代码,都要重新编译!


步骤 4 编译和运行Demo.java

41.png

这次就成功啦!


步骤 5 导入包


上面讲了用全限定名的方式引用外部类,这样毕竟有点麻烦,如果类的全限定名很长,比如来个com.aaa.bbb.ccc,就太不协调了,也不好看。所以下面,我们用一种更加常用的方式,即导入包。

import tool.*;

这句话加在Demo.java的最开头,它表示导入tool包下面所有类,这样一来不必每次都写全限定名了,可以直接这样调用:

StringUtil.newLine("StringUtil -> newLine");

Ctrl+1编译,Ctrl+2运行,自己验证一下吧。


步骤 6 导入静态方法

什么,上面的写法还嫌不过瘾,那么你还可以直接导入静态方法:

import static tool.StringUtil.*;


这个的意思是,导入StringUtil里面所有的静态方法,这下子你连StringUtil都不用写了,岂不美哉:

newLine("StringUtil -> newLine");


42.png

步骤 7 错误示范

咳咳,下面的写法就别想了,不支持的哦。

import static tool.*.*;


相关文章
|
13天前
|
移动开发 前端开发 Java
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
JavaFX是Java的下一代图形用户界面工具包。JavaFX是一组图形和媒体API,我们可以用它们来创建和部署富客户端应用程序。 JavaFX允许开发人员快速构建丰富的跨平台应用程序,允许开发人员在单个编程接口中组合图形,动画和UI控件。本文详细介绍了JavaFx的常见用法,相信读完本教程你一定有所收获!
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
|
2月前
|
Java 开发者
在 Java 中,一个类可以实现多个接口吗?
这是 Java 面向对象编程的一个重要特性,它提供了极大的灵活性和扩展性。
164 57
|
28天前
|
NoSQL Java 关系型数据库
Liunx部署java项目Tomcat、Redis、Mysql教程
本文详细介绍了如何在 Linux 服务器上安装和配置 Tomcat、MySQL 和 Redis,并部署 Java 项目。通过这些步骤,您可以搭建一个高效稳定的 Java 应用运行环境。希望本文能为您在实际操作中提供有价值的参考。
123 26
|
14天前
|
JSON Java Apache
Java基础-常用API-Object类
继承是面向对象编程的重要特性,允许从已有类派生新类。Java采用单继承机制,默认所有类继承自Object类。Object类提供了多个常用方法,如`clone()`用于复制对象,`equals()`判断对象是否相等,`hashCode()`计算哈希码,`toString()`返回对象的字符串表示,`wait()`、`notify()`和`notifyAll()`用于线程同步,`finalize()`在对象被垃圾回收时调用。掌握这些方法有助于更好地理解和使用Java中的对象行为。
|
1月前
|
安全 Java 编译器
Kotlin教程笔记(27) -Kotlin 与 Java 共存(二)
Kotlin教程笔记(27) -Kotlin 与 Java 共存(二)
|
1月前
|
Java 开发工具 Android开发
Kotlin教程笔记(26) -Kotlin 与 Java 共存(一)
Kotlin教程笔记(26) -Kotlin 与 Java 共存(一)
|
2月前
|
存储 缓存 安全
java 中操作字符串都有哪些类,它们之间有什么区别
Java中操作字符串的类主要有String、StringBuilder和StringBuffer。String是不可变的,每次操作都会生成新对象;StringBuilder和StringBuffer都是可变的,但StringBuilder是非线程安全的,而StringBuffer是线程安全的,因此性能略低。
66 8
|
2月前
|
Java 编译器 Android开发
Kotlin教程笔记(28) -Kotlin 与 Java 混编
Kotlin教程笔记(28) -Kotlin 与 Java 混编
36 2
|
1月前
|
Java 数据库连接 编译器
Kotlin教程笔记(29) -Kotlin 兼容 Java 遇到的最大的“坑”
Kotlin教程笔记(29) -Kotlin 兼容 Java 遇到的最大的“坑”
55 0
|
2月前
|
Java 编译器 Android开发
Kotlin教程笔记(28) -Kotlin 与 Java 混编
Kotlin教程笔记(28) -Kotlin 与 Java 混编
15 0