成员变量与局部变量的区别:

定义的位置上区别:   
    1. 成员变量是定义在方法之外,类之内的。
    2. 局部变量是定义在方法之内。

作用上的区别:
    1. 成员变量的作用是用于描述一类事物的公共 属性的。
    2. 局部变量的作用就是提供一个变量给方法内部使用而已。

生命周期区别:
    1. 随着对象 的创建而存在,随着对象的消失而消失。
    2. 局部变量在调用了对应的方法时执行到了创建该变量的语句时存在,局部变量一旦出了自己的作用域
    那么马上从内存中消失。

初始值的区别:
    1. 成员变量是有默认的初始值。
            数据类型     默认的初始值
            int                0
            float              0.0f
            double              0.0
            boolean            false
            char                 ' '
            String(引用数据类型) null


    2. 局部变量是没有默认的初始值的,必须要先初始化才能使用。

匿名对象

匿名对象:没有引用类型变量指向的对象称作为匿名对象。(new Car())

匿名对象要注意的事项:
1. 我们一般不会给匿名对象赋予属性值,因为永远无法获取到。
2. 两个匿名对象永远都不可能是同一个对象。

匿名对象好处:

1.简化书写。
2.可以尽快的释放内存空间。  

匿名对象的应用场景:
1. 如果一个对象需要调用一个方法一次的时候,而调用完这个方法之后,该对象就不再使用了,这时候可以使用
匿名对象。

2. 可以作为实参调用一个函数。
3.

 System.out.println(new Student() == new Student()) ;  // "==" 用于引用类型变量时,比较的是内存地址。判断两个 对象是否为同一个对象

封装

权限修饰符:权限修饰符就是控制变量可见范围的。

public : 公共的。 public修饰的成员变量或者方法任何人都可以直接访问。

private : 私有的, private修饰的成员变量或者方法只能在本类中进行直接访问。

封装的步骤:
1. 使用private修饰需要被封装的属性。
2. 提供一个公共的方法设置或者获取该私有的成员属性。
命名规范:
set属性名();
get属性名();

疑问: 封装一定要提供get或者set方法吗?
不一定, 根据需求而定的。

规范 : 在现实开发中一般实体类的所有成员属性(成员变量)都要封装起来。

实体类:实体类就是用于描述一类 事物的就称作为实体类。

工具类(Arrays数组的工具类):

封装的好处:
1. 提高数据的安全性。
2. 操作简单。
3. 隐藏了实现。

class Member{
    public  String name; //名字
    private String sex; //性别
    public  int salary; //薪水

    //定义一个公共的方法设置sex属性
    public void setSex(String s){
        if (s.equals("男")||s.equals("女")){ //注意: 如果比较两个字符串的内容是否一致,不要使用==比较, 使用equals方法。
            sex = s;
        }else{
            //默认是男
            sex = "男";
        }
}

    //定义一个公共的方法获取sex属性
    public String getSex(){
        return sex;
    }

    //聊天
    public void talk(){
        System.out.println(name+"聊得非常开心");
    }
}

public static void main(String[] args) 
{
    Member m = new Member();
    m.name="狗娃";
    m.setSex("女");
    m.salary  = 800;
    System.out.println("姓名:"+ m.name+" 性别:"+ m.getSex()+" 薪水:"+ m.salary);
}
posted on 2018-03-07 22:25  NE_STOP  阅读(0)  评论(0编辑  收藏  举报  来源