接上一讲,现在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 编译,报错,欧耶~
步骤 3 访问权限修饰符
思考一个问题,为什么main方法可以被调用?我们发现每一个main方法,都会有一个public修饰符来修饰,所以,我们给StringUtil也加上public。
ctrl+1,重新编译,记住了,每次修改完源代码,都要重新编译!
ctrl+1,重新编译,记住了,每次修改完源代码,都要重新编译!
ctrl+1,重新编译,记住了,每次修改完源代码,都要重新编译!
步骤 4 编译和运行Demo.java
这次就成功啦!
步骤 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");
步骤 7 错误示范
咳咳,下面的写法就别想了,不支持的哦。
import static tool.*.*;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
2016-10-10 【406错误】 The resource identified by this request is only capable of generating responses with characteristics not acceptable according to the request "accept" headers.