成员变量与局部变量
在类中的位置不同
成员变量:在类中方法外
局部变量:在方法定义中或者方法声明上
在内存中的位置不同
成员变量:在堆内存
变量:在栈内存
生命周期不同
成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
初始化值不同
成员变量:有默认初始化值
局部变量:没有默认初始化值,必须定义,赋值,然后才能使用。
封装的概念
是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
优点
隐藏实现细节,提供公共的访问方式
提高了代码的复用性
提高安全性。
封装原则
将不需要对外提供的内容都隐藏起来。
把属性隐藏,提供公共方法对其访问。
举例:定义一个学生类并在其中定义属性及可实现的功能
/*
package westos.work;
public class Student {
//定方法变量义
private String name;
private int num;
private String sex;
//定义无参变量
public Student() {
}
//定义有参变量
public Student(String name, int num,String sex) {
this.name = name;
this.num = num;
this.sex = sex;
}
//定义get和set方法对定义的变量进行赋值
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
//定义方法在程序中调用实现功能
public void studay(){
System.out.println(“学习JAVA”);
}
}
package westos.work;
public class MyText1 {
public static void main(String[] args) {
Student student = new Student();//new 一个新的对象用来实现操作
student.setName("蔡徐坤");//用set方法进行参数赋值
student.setNum(2);
student.setSex("男");
System.out.println(student.getName());
System.out.println(student.getNum());
System.out.println(student.getSex());
student.studay();
System.out.println("====================");
Student student1 = new Student("张三",3,"男");//用有参变量进行赋值
System.out.println(student1.getName());
System.out.println(student1.getNum());
System.out.println(student1.getSex());
student.studay();
}*/
private关键字特点
a:是一个权限修饰符
b:可以修饰成员变量和成员方法
c:被其修饰的成员只能在本类中被访问
this关键字
this的作用
当我们的局部变量和成员变量相同的时候,如果我们不使用this关键字,那么会导致 一个问题:就是局部变量隐藏了成员变量的问题
this关键字特点
是当前类的对象引用。
简单的记,它就代表当前类的一个对象。谁调用这个方法,那么该方法的内部的this就代表谁
this的应用
解决局部变量隐藏成员变量