1.运行第一个java程序
①在idea中将项目文件夹设置为Sources Root,这样才能创建Package

②在该文件夹下创建Package

③新建一个Test类,输入以下代码
package learning.src.teach; //声明该类所属的包
public class Test //主类
{
public static void main(String[] args) //主函数,args是命令行参数
{
System.out.println("Hello"); //输出Hello
}
}
运行输出

从Hello程序引出下面几个知识点:
2.关于Java的Package
①包的作用:
-
把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。
-
不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,包可以避免名字冲突。
-
包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。
②包的命名:
package learning.src.teach; //声明该类所属的包
public class Test //主类
那么Test.java的路径应该是...\learning\src\teach\Test.java
③列举一些开发中常用的包:
java.lang提供了基础类,用得最多的类是java.lang.Object与java.lang.Classjava.util提供了集合框架与实用的工具类,如java.util.ArrayListjava.util.Datejava.io提供了全面的IO接口。文件读写、标准设备输出等。
3.再谈Java的权限修饰符
-
标记为 public 的部分可以被任意的类使用
-
标记为 private 的部分只能被定义它们的类使用
-
如果没有指定 public 或 private , 即为default,这个部分(类、方法或变量)只能被同一个包中的所有方法访问。
4.为什么类名Test与文件名Test必须相同?
如果不同会出现下面报错

Java规定代码中的public类就必须和文件名一致,且仅有一个public类,否则编译报错,但是如果没有public类,文件名和类名都无所谓
class Test
{
public static void main(String[] args)
{
System.out.println("Hello"); //can work
}
}
解析:这个public声明了该类的权限,允许与其他包联系,正如第二点权限修饰中提到的:如果没有public,那么此类就不能被其他包使用(不能被import)。所以一般这种没有public修饰的类是为主public类提供支持的。
public class Test
{
public static void main(String[] args)
{
AA=new AA();
System.out.println("Hello");
}
}
class AA
{
//do something for Test
}
5.为什么main方法必须是public static void类型?
①public是函数的权限,决定了是否可以被外部函数调用。调用main函数的函数(在操作系统中)所在的包肯定与main函数本身(在jvm中)所在包不一样,如果不限定public,那么JVM就无法调用main函数

②在java中调用类中函数,一般要先声明一个对象,通过该对象来调用函数,但是在main函数之前先创建一个类对象显然是不可能的,因为main是程序的入口。那么使用static关键字就能将方法声明为类本身的方法,即不属于任何对象,不需要通过对象调用
③void表明不接受任何返回值,main函数是由JVM调用的,即使有返回值,就是被JVM接收,但JVM被设计成不接受任何返回值,所以只能void

326

被折叠的 条评论
为什么被折叠?



