一、成员变量与局部变量
1.定义的位置不同
成员变量:成员变量定义在方法外,类中;
局部变量:局部变量定义在方法中。
2.生命周期不同
成员变量:是随着对象的加载而加载,随着对象的销毁而销毁;
局部变量:是随着方法的加载而加载,随着方法的结束而结束;
3.存储的位置不同
成员变量:存储在堆内存中;
局部变量:存储在栈内存中;
4.是否有默认值
成员变量:是有默认值的;
局部变量:是没有默认值,必须先赋值才能使用;
二、封装
1.概念:用来隐藏属性内部的细节部分,对外提供访问的方法;
2.好处:
- 可以提高代码的安全性;
- 提高代码的可扩展性和维护性;
3.体现
- 对属性进行封装:使用private进行修饰,使用priva进行修饰的属性,不能被其他类访问;
4.方法
(1)提供两个对外访问的方法,可用来改变私有属性的变量值,解决不能被其他类访问的问题。
set()-------->设置值,用于给成员变量进行赋值;
get()--------->获取值,获取成员变量的值;
(2)利用this关键字,可以避免方法参数名称与成员变量名称相同的时候,导致成员变量赋值失败。
this----->表示当前对象的引用,即可以理解为就是当前对象;
this.变量名-------->获取的是成员变量;
this.方法()--------->获取的是成员方法;
5.案例
(1)提供public方法,给封装好的函数接口,用来修改封装类的属性。
1 public class Test03 { 2 public static void main(String[] args) { 3 //实例化对象 4 Student stu = new Student(); 5 //访问私有属性 6 7 //给成员变量赋值 8 stu.setName("张三"); 9 stu.setAge(50); 10 //取值 11 System.out.println(stu.getName()); 12 System.out.println(stu.getAge()); 13 } 14 } 15 16 //student类 封装 17 class Student { 18 private String name; 19 private int age; 20 21 //添加set(),get()方法 22 // 就是定义一个别的类可以访问本类私有属性的方法,该方法为public 23 //得到名字、年龄 24 public void setName(String n) { 25 name = n; 26 } 27 public String getName() { 28 return name; 29 } 30 //设置名字、年龄 31 public void setAge(int a) { 32 if(a < 0 || a > 120){ 33 age = 60; 34 }else { 35 age = a; 36 } 37 } 38 public int getAge(){ 39 return age; 40 } 41 42 }
(2)用this获取成员变量、成员方法
1 public class Test03 { 2 public static void main(String[] args) { 3 //实例化对象 4 Student stu = new Student(); 5 //访问私有属性 6 7 //给成员变量赋值 8 stu.setName("张三"); 9 stu.setAge(50); 10 //取值 11 System.out.println(stu.getName()); 12 System.out.println(stu.getAge()); 13 } 14 } 15 class Student { 16 private String name; 17 private int age; 18 19 //用this引用set(),get()方法 20 //同上,给本类写对外接口 21 public void setName(String name){ 22 this.name=name; 23 } 24 public String getName(){ 25 return name; 26 } 27 public void setAge(int age){ 28 if (age < 0 || age > 120){ 29 this.age=60; 30 }else { 31 this.age=age; 32 } 33 } 34 public int getAge(){ 35 return age; 36 } 37 38 }
标签:封装,变量,成员,age,局部变量,stu,Java,public,name From: https://www.cnblogs.com/demon-/p/17084150.html