通过修改属性的可见性来限制对属性的访问
一般为封装的属性提供一对取值方法(getter) 和赋值方法(setter) 公开这些属性的访问接口
示例
public class Student{ private String name; private int age; public void setName(String name){ this.name = name; //this解决name和形参同名的问题 } public void setAge(int age){ this.age = age; } public String getName(){ return name; } public int getAge(){ return age; } }
隐藏方法实现细节(方法体),向外部体现公开接口(方法头),以安全简化调用,方便修改维护。
根据需要可私有化方法,以供内部调用。
示例
public class Time{ private int year; private boolean isLeapYear(){ if((year%4==0 && year%100!=0)||year%400==0){ return true; }else{ return false; } } }
构造方法负责对象初始化工作,为对象的属性赋合适的初值
构造方法在创建对象时根据传入的参数自动被调用
构造方法的语法规则:
示例
class Student{ private String name; private int age; double score; Student(String _name,int _age){ age = _age; name = _name; System.out.println("这是构造方法1"); System.out.println("name:"+name+" age:"+age+" score:"+score); } Student(String _name,int _age,double _score){ age = _age; name = _name; score = _score; System.out.println("这是构造方法2"); System.out.println("name:"+name+" age:"+age+" score:"+score); } } public class Test { public static void main(String[] args) { Student St1 = new Student("xiao ming",18); Student St2 = new Student("xiao hong",16,99); } }
结果
这是构造方法1 name:xiao ming age:18 score:0.0 这是构造方法2 name:xiao hong age:16 score:99.0
其实this在Java中相当于一个代词,是对调用对象的一个替换,主要使用场景如下:
在类的方法中使用this,this代表调用此方法的对象
this可以看成一个变量,她的值是当前对象
可以解决方法中的成员变量和形参同名的问题
在类的构造发法中可以调用this(参数列表)来调用该类的指定构造方法
示例
class Student{ private String name; private int age; double score; void This(int age){ this.age = age; Student stutemp = this; System.out.println("大家好,我是" + stutemp.name + "。我今年" + this.age + "岁了!"); } Student(String _name,int _age){ age = _age; name = _name; System.out.println("这是构造方法1"); System.out.println("name:"+name+" age:"+age); } Student(String _name,int _age,double _score){ this("NB",66); age = _age; name = _name; score = _score; System.out.println("这是构造方法2"); System.out.println("name:"+name+" age:"+age+" score:"+score); } } public class Test { public static void main(String[] args) { Student St1 = new Student("小可爱",16,99); St1.This(18); } }
输出
这是构造方法1 name:NB age:66 这是构造方法2 name:小可爱 age:16 score:99.0 大家好,我是小可爱。我今年18岁了!
static修饰的成员在类加载的时候就会加载,优先于对象存在。
static修饰的变量被称为类变量(静态变量);static修饰的方法被称为类方法(静态方法)。静态方法只能使用之前声明的静态变量。
调用的时候直接通过 类名.成员 的形式调用。
static修饰的代码块被称为静态代码块,先于构造方法之前执行,只执行一次,用来对静态成员初始化。
示例
class Student{ static private String name; static private int age; double score; static void print(){ System.out.println("大家好,我是" + name + "。我今年" + age + "岁了!"); } static{ name = "佚名"; age = 22; } } public class Test { public static void main(String[] args) { Student.print(); } }
输出
大家好,我是佚名。我今年22岁了!
❤️ 本回完!❤️ ❤️ ❤️