private关键字
- 是一个权限修饰符
- 可以修饰成员(成员变量和成员方法)
- 被private修饰的成员只能在本类中才能访问
用private关键字优化上面demo
package Classes;
public class GirlFriend {
//属性
private String name;
private int age;
private String gender;
//针对与每一个私有化的成员变量,都要提供get和set方法
//set方法:给成员变量赋值
//get方法:对外提供成员变量的值
//作用:给成员变量name进行赋值的
public void setName(String n){
name = n;
}
//作用:对外提供name属性
public String getName(){
return name;
}
public void setAge(int a) {
if(a >= 18 && a <= 50){
age = a;
}else {
System.out.println("非法参数");
}
}
public int getAge(){
return age;
}
public void setGender(String c){
gender = c;
}
public String getGender(){
return gender;
}
//行为
public void sleep(){
System.out.println("女朋友在睡觉");
}
public void eat(){
System.out.println("女朋友在吃饭");
}
}
package Classes;
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关键字
**this的作用:**区分局部变量和成员变量
**this的本质:**所在方法调用者的地址值
图片来源 --黑马程序员
用this关键字优化上面代码的类
package Classes;
public class GirlFriend {
//属性
private String name;
private int age;
private String gender;
//针对与每一个私有化的成员变量,都要提供get和set方法
//set方法:给成员变量赋值
//get方法:对外提供成员变量的值
//作用:给成员变量name进行赋值的
public void setName(String name){
this.name = name;
}
//作用:对外提供name属性
public String getName(){
return name;
}
public void setAge(int age) {
if(age >= 18 && age <= 50){
this.age = age;
}else {
System.out.println("非法参数");
}
}
public int getAge(){
return age;
}
public void setGender(String gender){
this.gender = gender;
}
public String getGender(){
return gender;
}
//行为
public void sleep(){
System.out.println("女朋友在睡觉");
}
public void eat(){
System.out.println("女朋友在吃饭");
}
}
构造方法的格式
public class 类名{
修饰符 类名(参数){
方法体;
}
}
- 方法名与类名相同,大小写也要一致
- 方法没有返回值类型,连void都没有
- 没有具体的返回值(不能由retrun带回结果数据)
构造方法的定义
- 如果没有定义构造方法,系统将给出一个默认的无参数构造方法
- 如果定义了构造方法,系统将不再提供默认的构造方法
构造方法的重载
- 带参构造方法,和无参数构造方法,两者方法名相同,但是参数不同,这叫做构造方法的重载
推荐的使用方式
- 无论是否使用,都手动书写无参数构造方法,和带全部参数的构造方法
构造方法的作用?
- 创造对象的时候,由虚拟机自动调用,给成员变量进行初始化的。
构造方法有几种,各自的作用是什么?
- 无参数构造方法:初始化的对象时,成员变量的数据均采用默认值。
- 有参数构造方法:在初始化对象的时候,同时可以为对象进行赋值。
最后:欢迎大家关注我的公众号 “盘键盘的Yliken”