在一个类中需要使用非当前包里的类,需要进行导包操作
1)如果你使用的类是java.lang包里的类,不需要你手动导包,系统自动导包
2)要使用非java.lang包中的类,需要手动导包,导包使用import关键字
import xxx.xxx.xxx.类名;
3)导包语句写在包定义语句和类定义语句之间,一个Java文件中可能需要使用多个其他包中的类,就需要写多个import语句
4如果你需要导入某个包中大多数的类型,你可以使用*表示这个包中所有的类,注意,*不包含子文件夹中的类
5)如果一个类中同时使用了其它多个包中的同名类,那么需要使用类的完整路径名(包含类所在包的名称)来使用类
public class Penguin {
//定义属性时,不再使用public修饰符,使用private进行修饰
private String name;
private int health;
private int love;
public Penguin() {
}
public Penguin(String name, int health, int love) {
this.name = name;
this.health = health;
this.love = love;
}
public void show(){
System.out.println("昵称:"+this.name+",健康值:"+this.health+",亲密度:"+this.love);
}
//因为name、health、love属性被private修饰了,这三个属性只能在本类中直接访问,外部程序不能直接访问这三个属性,需要提供公共的get/set方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getHealth() {
return health;
}
public void setHealth(int health) {
//在这里,对你传递过来的health值进行判断
if(health<1 || health>100){
System.out.println("健康值范围1~100,你赋予的值不合理,默认赋予一个值60");
this.health =60;
return;//如果你赋予的健康值不合理,默认赋值,然后结束后续操作
}
this.health = health;
}
public int getLove() {
return love;
}
public void setLove(int love) {
//在这里,对你传递过来的love值进行判断
if(love<1 || love>100){
System.out.println("亲密度值范围1~100,你赋予的值不合理,默认赋予一个值70");
this.love =70;
return;//如果你赋予的健康值不合理,默认赋值,然后结束后续操作
}
this.love = love;
}
public static void main(String[] args) {
Penguin penguin1 = new Penguin();
penguin1.name = "QQ";
penguin1.health = 90;
penguin1.love = 99;
penguin1.show();
}
}
public class PenguinTest {
public static void main(String[] args) {
//使用无参构造方法创建对象
Penguin penguin1 = new Penguin();
//给属性赋值
//在Penguin类中对name、health、love使用private修饰了,在外部程序中不能直接访问,只能通过Penguin类中公共的get/set方法访问操作
// penguin1.name = "QQ";
// penguin1.health = 90;
// penguin1.love = 99;
penguin1.setName("QQ");
penguin1.setHealth(99);
penguin1.setLove(100);
System.out.println("昵称:"+penguin1.getName()+",健康值:"+penguin1.getHealth()+",亲密度:"+penguin1.getLove());
penguin1.show();
System.out.println("--------------------------------------");
Penguin penguin2 = new Penguin();
penguin2.setName("Q仔");
penguin2.setHealth(-90);
penguin2.setLove(-100);
System.out.println("昵称:"+penguin2.getName()+",健康值:"+penguin2.getHealth()+",亲密度:"+penguin2.getLove());
penguin2.show();
}
}
1)类的修饰符有public和默认修饰符
2)public修饰符是公有访问级别,在任何位置都可以直接访问
3)默认修饰符是包级私有,被默认修饰符修饰的类,只能被同一个包中的类访问
JVM加载类时,加载静态代码块
如果有多个静态块,按顺序加载
每个静态代码块只会被执行一次
static代码块可以用来设置相关配置信息,例如数据库的相关信息,还可以用来初始化数据
经过上述一些列的操作得到:
静态方法中只能访问静态变量和静态方法
非静态方法中可以访问非静态变量和非静态方法,也可以访问静态变量和静态方法
总结:静态的只能访问静态,非静态可以访问所有的