目录
HelloWorld.java
/*
关于java语言中的package和import机制:
1、为什么要使用package?
package是java中包机制。包机制的作用是为了方便程序的管理。
不同功能的类分别存放在不同的包下。(按照功能划分的,不同的
软件包具有不同的功能。)
2、package怎么用?
package是一个关键字,后面加包名。例如:
package com.bjpowernode.javase.chapter17;
注意:package语句只允许出现在java源代码的第一行。
3、包名有没有命名规范?有
一般都采用公司域名倒序的方式(因为公司域名具有全球唯一性。)
包名命名规范:
公司域名倒序 + 项目名 + 模块名 + 功能名
4、对于带有package的java程序怎么编译?怎么运行?
采用之前的编译和运行不行了。
类名不再是:HelloWorld了。
类名是:com.bjpowernode.javase.chapter17.HelloWorld
编译:
javac -d . HelloWorld.java
解释一下:
javac 负责编译的命令
-d 带包编译
. 代表编译之后生成的东西放到当前目录下(点代表当前目录)
HelloWorld.java 被编译的java文件名。
运行:
java com.bjpowernode.javase.chapter17.HelloWorld
5、关于import的使用。
import什么时候使用?
A类中使用B类。
A和B类都在同一个包下。不需要import。
A和B类不在同一个包下。需要使用import。
java.lang.*;这个包下的类不需要使用import导入。
import怎么用?
import语句只能出现在package语句之下,class声明语句之上。
import语句还可以采用星号的方式。
*/
package com.bjpowernode.javase.chapter17;
public class HelloWorld{
public static void main(String[] args){
System.out.println("Hello World!"); // Hello World!
}
}
Test01.java
package com.bjpowernode.javase.chapter17;
public class Test01{
public static void main(String[] args){
// 创建HelloWorld对象
// HelloWorld的完整类名:com.bjpowernode.javase.chapter17.HelloWorld
com.bjpowernode.javase.chapter17.HelloWorld hw = new com.bjpowernode.javase.chapter17.HelloWorld();
System.out.println(hw); //com.bjpowernode.javase.chapter17.HelloWorld@28a418fc
// 包名可以省略吗?
// 思考:这里的包名之所以可以省略,是因为HelloWorld和Test01在同一个package下。
HelloWorld hw2 = new HelloWorld();
System.out.println(hw2); //com.bjpowernode.javase.chapter17.HelloWorld@5305068a
}
}
Test02.java
package com;
// 将需要的类导入。
//import com.bjpowernode.javase.chapter17.HelloWorld;
import com.bjpowernode.javase.chapter17.*;
public class Test02{
public static void main(String[] args){
/*
Test02在com包下。
HelloWorld在com.bjpowernode.javase.chapter17下。
不在同一个package下,包名可以省略吗?
不能省略。
*/
//错误: 找不到符号
/*
HelloWorld hw = new HelloWorld();
System.out.println(hw);
*/
/*
com.bjpowernode.javase.chapter17.HelloWorld hw = new com.bjpowernode.javase.chapter17.HelloWorld();
System.out.println(hw);
com.bjpowernode.javase.chapter17.HelloWorld hw2 = new com.bjpowernode.javase.chapter17.HelloWorld();
System.out.println(hw2);
com.bjpowernode.javase.chapter17.HelloWorld hw3 = new com.bjpowernode.javase.chapter17.HelloWorld();
System.out.println(hw3);
*/
HelloWorld hw1 = new HelloWorld();
System.out.println(hw1); // com.bjpowernode.javase.chapter17.HelloWorld@5caf905d
HelloWorld hw2 = new HelloWorld();
System.out.println(hw2); // com.bjpowernode.javase.chapter17.HelloWorld@27716f4
}
}
Test03.java
package com.bjpowernode.javase.chapter17;
//import java.util.Scanner;
import java.util.*;
public class Test03{
public static void main(String[] args){
// 为什么要这样写?
// Test03类和Scanner类不在同一个包下。
// java.util就是Scanner类的包名。
//java.util.Scanner s = new java.util.Scanner(System.in);
Scanner s = new Scanner(System.in);
String str = s.next();
System.out.println("您输入的字符串是--->" + str);
java.lang.String name = "zhangsan";
System.out.println("名字是:" + name);
String username = "lisi";
System.out.println("用户名是:" + username);
}
}
访问控制权限
User.java
package com.bjpowernode;
public class User{
//给一些属性
// 私有的
private int id;
// 受保护的
protected int age;
// 公开的
public int weight;
// 默认的
String name;
// 方法
public void m1(){}
private void m2(){}
void m3(){}
protected void m4(){}
// 静态方法也可以。
public static void x(){}
private static void y(){}
static void z(){}
protected static void k(){}
}
//错误: 此处不允许使用修饰符private
/*
private class MyClass1{
}
*/
//错误: 此处不允许使用修饰符protected
/*
protected class MyClass1{
}
*/
class MyClass1{
}
Vip.java
package com.bjpowernode3; // 包变化了。
// 导入
import com.bjpowernode.User;
// User在com.bjpowernode包下。
// Vip在com.bjpowernode3包下。
// User和Vip不在同一个包下。
// 但是Vip是User的子类。
public class Vip extends User{
//实例方法
public void shopping(){
// this表示当前对象
// protected可以
System.out.println(this.age);
// 错误:默认 不行。
//System.out.println(this.name);
}
}
Test01.java
package com.bjpowernode;
public class Test01{
public static void main(String[] args){
User user = new User();
// private修饰的元素只能在本类中用。
//System.out.println(user.id);
System.out.println(user.age); // 0
System.out.println(user.weight); // 0
System.out.println(user.name); // null
}
}
Test02.java
package com.bjpowernode2; // 包变化了。
//import com.bjpowernode.*;
import com.bjpowernode.User;
public class Test02{
public static void main(String[] args){
User user = new User();
// 错误:protected在这里不行。
//System.out.println(user.age);
// 可以:公开的,在哪都行。
System.out.println(user.weight); // 0
// 错误:“默认”在这里也不行。
//System.out.println(user.name);
}
}