方法的重载
方法名相同;参数列表不同。这称为方法重载。
可以通过构造方法的重载来实现多种初始化行为。
在创建对象时可以根据需要选择合适的构造方法。
判断方法重载的依据:
- 必须在同一个类里。
- 方法名称相同。
- 参数列表(方法参数的个数或者参数类型)不同。
- 与方法返回值和方法修饰符没有任何关系。
这样也是可以的!!!!
public class sc {
public void sd(int i,String s){
}
public void sd(String s,int i){
}
}
static修饰符
static可以修饰属性、方法和代码块。
通常把static修饰的属性和方法称为类属性(类变量)和类方法。
不使用static修饰的属性和方法称为实例属性(实例变量)和实例方法。
在加载类的过程中,先完成静态变量的内存分配,再执行静态代码块,两者是在创建对象之前执行。
类属性和类方法可以通过类名和对象名访问,实例属性和实例方法只能通过对象名访问
类方法只能访问类属性和其它类方法。
类变量不能是局部变量。
静态方法名不能使用this和super关键字。
封装特性
采用private修饰符的变量不能再类外部访问。而是通过public修饰的setter和getter方法访问,通过在setter方法中编写相应寻去控制语句可以避免出现不符合实际需求的赋值。
public class DogStrongen {
private String name="无名氏";
private int health=100;
private int love=0;
private String strain="聪明的拉布拉多犬";
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getHealth() {
return health;
}
public void setHealth(int health) {
if(health>100||health<0){
this.health=40;
System.out.println("健康值应该在0到100之间,默认值为40");
}else{
this.health = health;
}
}
public int getLove() {
return love;
}
public void setLove(int love) {
this.love = love;
}
public String getStrain() {
return strain;
}
public void setStrain(String strain) {
this.strain = strain;
}
public void print(){
System.out.println("宠物的自白:\n我的名字叫"+this.name+",健康值是:"+this.health+",和主人的亲密度是"+this.love+",我是一只"+this.strain+"。");
}
public static void main(String[] args) {
DogStrongen dog=new DogStrongen();
dog.setName("偶偶");
dog.setHealth(300);
System.out.println("昵称是"+dog.getName());
System.out.println("健康值是"+dog.getHealth());
dog.print();
}
}
权限控制符:
private:成员变量和方法只能在其定义的类中被访问,具有类可见性。
默认:成员变量和方法只能被同一个包里的类访问,具有类可见性。
protected:可以被同一个包中的类访问,被同一个项目中不同包中的子类访问。
public:可以被同一颗项目中的所有类访问,具有项目可见性,最大的访问权限。
this关键字:
this关键字是一个默认的引用,在每个实例方法内部,都有一个this引用变量,指向调用的这个方法的对象。
使用this调用成员变量,可以解决成员变量和局部变量的同名冲突。
使用this调用成员方法。
使用this调用重载的构造方法,只能在构造方法中使用,,但必须是构造方法的第一条语句。