持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第22天,点击查看活动详情
private关键字
- private关键字是一个权限修饰符
- 可以修饰成员
- 被private修饰的成员只能在本类中才能访问
- 针对private修饰的成员变量,如果需要被其它类使用,需要提供相应的操作
- 提供“setXxx(参数)”方法,用于给成员变量赋值,方法用public修饰
- 提供"getXxx()"方法,用于获取成员变量的值,方法用public修饰
例子见下面这段代码
GirlFriendTest.java
package test;
public class GirlFriend {
//属性
private String name;
private int age;
private String gender;
//针对于每一个私有化的成员变量,都要提供get和set方法
//set方法:给成员变量赋值
//get方法:对外提供成员变量的值
public void setName(String n){
name=n;
}
public String getName(){
return name;
}
//age
//setAge:给成员变量age进行赋值的
//getAge:对外提供成员变量age的值
public void setAge(int a){
if(a>=18 && a<=50){
age=a;
}else{
System.out.println("年龄超出范围");
}
}
public int getAge(){
return age;
}
//gender
public void setGender(String g){
gender=g;
}
public String getGender(){
return gender;
}
//行为
public void sleep(){
System.out.println("女朋友在睡觉");
}
public void eat(){
System.out.println("女朋友在吃饭");
}
}
GirlFriend.java
package test;
public class GirlFriendTest {
public static void main(String[] args){
GirlFriend gf1=new GirlFriend();
gf1.setName("蕊蕊");
gf1.setAge(18);
gf1.setGender("萌妹子");
System.out.println(gf1.getName());
System.out.println(gf1.getAge());
System.out.println(gf1.getGender());
gf1.eat();
gf1.sleep();
}
}
this关键字
就近原则
当成员变量和局部变量名字重复的时候,遵循就近原则来进行赋值
System.out.println(age);
System.out.println(this.age);
上面这个代码中,第一行的age是根据就近原则来的,打印的是局部变量的age,而下边的打印的则是成员变量。
this关键字的作用就是区别成员变量和局部变量
构造方法
定义
- 如果没有定义构造方法,系统将给出一个默认的无参数构造方法
- 如果定义了构造方法,系统将不再提供默认的构造方法
构造方法重载
- 带参构造方法和无参构造方法,两者的方法名相同,但是参数不同,这就叫构造方法的重载
推荐使用:无论是否使用,都手动书写无参数构造方法(空参),和带全部参数的构造方法。
作用
创造对象的时候,由虚拟机自动调用,给成员变量进行初始化的
分类
- 无参数构造方法:初始化对象的时候,成员变量的数据均采用默认值
- 有参数构造方法:在初始化对象时,同时可以为对象进行赋值
“构造方法是用来创建对象的”
这句话大错特错,创造对象的时候,虚拟机会自动调用构造方法,作用是给成员变量进行初始化的