一:封装
面向对象程序设计的三大特性之一(封装,继承,多态)
隐藏类的属性信息,方法的实现,通过对象调用发现的来完成相关功能
优点:提高了代码的安全性和复用性
二:关键字private
首先先了解复习一下两个概念,成员变量和局部变量
(1)成员变量:类中方法外的变量,存储在堆内存中,随对象存在,有默认初始值
(2)局部变量:方法内或方法声明,存储在栈内存中,随方法存在,无默认初始值
权限修饰符private
权限修饰符:修饰成员变量或者方法
private:作用:保护成员不被别的类使用,被private修饰的成员,只能在类内部访问,比如 private修饰的成员变量,就不能通过对象名.成员变量名=值;这种方式访问和赋值,而需要在类内定义方法得到这个值。
private的使用:
public class Student {
private String name;
private int age;
public void setName(String _name)
{
name=_name;
}
public String getName()
{
return name;
}
public void setAge(int _age)
{
age=_age;
}
public int getAge()
{
if(age<0)
{
System.out.println("年龄错误");
return -1;
}
else
{
return age;
}
}
public void show()
{
System.out.println(name+","+age);
}
}
public class StudentTest {
public static void main(String[] args) {
Student stu=new Student();
stu.setName("吴凯通");
stu.setAge(19);
stu.show();
System.out.println(stu.getName()+"---"+stu.getAge());
}
}
上述代码的类的成员方法setName(String _name);此时方法的参数名和类的成员变量不同,编译器可以区分,但是当方法的参数名和类成员变量同名时,成员变量需要通过关键字this指出,例:this.name=name;
关键字this
(1)this修饰的变量指代成员变量
(2)this代表所在类的引用
this内存
对象存储在堆内存,方法的调用在栈内存
方法属于哪个对象,this就代表这个对象,即this代表所在类的引用。
构造方法
格式
public 类名(参数){
}
当参数为空时,构造方法为无参构造方法
当参数不为空时,构造方法为有参构造方法
注:未定义构造方法时,系统会有一个默认的无参构造方法,而一旦定义了有参构造方法,系统就不再给出默认无参构造方法,这是还想使用无参构造方法时需要自定义。
标准类制作
(1)成员变量使用private修饰
(2)提供一个无参构造函数和若干有参构造函数
(3)提供对修改成员变量和显示对象信息的成员方法