面向对象三大特性之封装

面向对象的三大基本特征:

封装:封装是指将对象的实现细节隐藏起来,然后通过公共的方法来向外暴露该对象的事功能。

继承:即城市面向对象实现软件服用的重要手段,当子类继承父类后,子类是一种特殊的父类,能直接或间接获得父类的成员。

多态:多态是可以直接把子类对象赋给父类变量,但是运行时依然表现出子类的行为特征,这意味着同一类型的对对象在运行时可能表              现出不同的行为特征

局部变量和成员变量区别

区别一:

定义的位置不同

定义在类中的变量是成员变量 

定义在方法中或者{}语句里面的变量是局部变量

区别二:

在内存中的位置不同

成员变量存储在堆内存的对象中

局部变量存储在栈内存的方法中 

区别三:

生命周期不同

成员变量随着对象的出现而出现在堆中,随着对象的消失而从堆中消失

局部变量随着方法的运行而出现在栈中,随着方法的弹栈而消失

区别四:

初始化不同

成员变量因为在堆内存中,所有默认的初始化值

局部变量没有默认的初始化值,必须手动的给其赋值才可以使用。

 创建类:

 1 package com.oracle.demo02;
 2 
 3 public class Person {
 4     //私有:private   关键字   把变量还有方法私有化,外界不能访问
 5     //只能在本类中访问。
 6     //封装:隐藏实现细节,对外提供访问方式
 7     private String name;
 8     private int age;
 9     public void setName(String n){
10         name=n;
11     }
12     //取值
13     public String getName(){
14         return name;
15     }
16     public void setAge(int a){
17         if(a>=0 && a<=120){
18             age=a;
19         }else{
20             age=0;
21         }
22     }
23     //取值
24     public int getAge(){
25         return age;
26     }
27     public void speak(){
28         System.out.println("我叫"+name+"今年"+age+"岁了");
29     }
30 }

测试类:

 1 package com.oracle.demo02;
 2 
 3 public class Test {
 4 
 5     public static void main(String[] args) {
 6         Person p1=new Person();
 7         /*p1.name="夏目";
 8         p1.age=20;*/
 9         p1.setName("夏目");
10         p1.setAge(20);
11         Person p2=new Person();
12         System.out.println(p1.getName()+"......"+p1.getAge());
13 /*        p2.name="三三";
14         p2.age=-18;*/
15         p2.setName("三三");
16         p2.setAge(-18);
17         p1.speak();
18         p2.speak();
19 
20     }

运行结果:

原文地址:https://www.cnblogs.com/2734156755z/p/9342028.html