Day05面向对象,封装,this

对着背影说爱祢 提交于 2020-02-28 06:26:36

1.面向对象的2个点

*成员变量

*成员方法

2.使用对象,成员变量,成员方法

    * 创建对象并使用
    * 格式:类名 对象名 = new 类名();

    *使用成员变量: 对象名.变量名

    *使用成员方法: 对象名.方法名(...)

3. 成员变量和局部变量的区别

A:在类中的位置不同
    * 成员变量:在类中方法外
    * 局部变量:在方法定义中或者方法声明上
B:在内存中的位置不同
    * 成员变量:在堆内存(成员变量属于对象,对象进堆内存)
    * 局部变量:在栈内存(局部变量属于方法,方法进栈内存)
C:生命周期不同
    * 成员变量:随着对象的创建而存在,随着对象的消失而消失
    * 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
D:初始化值不同
    * 成员变量:有默认初始化值
    * 局部变量:没有默认初始化值,必须定义,赋值,然后才能使用。
    
注意事项:
    * 局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用的是就近原则。
    * 基本数据类型变量包括哪些:byte,short,int,long,float,double,boolean,char
    * 引用数据类型变量包括哪些:数组,类,接口,枚举

4.方法的形式参数是类名的时候如何调用

class Demo1_Student {
    public static void main(String[] args) {
        print(10);

        Student s = new Student();                    //创建对象,并将对象的地址值赋值给s
        print(s);

    }

    public static void print(int x) {                //基本数据类型当作形式参数(传的是值)
        System.out.println(x);
    }

    public static void print(Student stu) {            //引用数据类型当作形式参数(传的是地址值)
        stu.name = "张三";
        stu.age = 23;
        stu.speak();
    }
}

/*
* A:方法的参数是类名public void print(Student s){}//print(new Student());
    * 如果你看到了一个方法的形式参数是一个类类型(引用类型),这里其实需要的是该类的对象。
*/
class Student {
    String name;                    //姓名
    int age;                        //年龄

    public void speak() {
        System.out.println(name + "..." + age);
    }
}

5.封装(private就是封装的一个应用)

A:封装概述
    * 是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。

B:封装好处
    * 隐藏实现细节,提供公共的访问方式
    * 提高了代码的复用性
    * 提高安全性。
C:封装原则
    * 将不需要对外提供的内容都隐藏起来。
    * 把属性隐藏,提供公共方法对其访问。

6. private关键字的概述和特点

* A:private关键字特点
    * a:是一个权限修饰符
    * b:可以修饰成员变量和成员方法
    * c:被其修饰的成员只能在本类中被访问
* B:案例演示
    * 封装和private的应用:
    * A:把成员变量用private修饰
    * B:提供对应的getXxx()和setXxx()方法
    * private仅仅是封装的一种体现形式,不能说封装就是私有

                public void setBrand(String brand) {    //设置品牌
                    this.brand = brand;
                }
            
                public String getBrand() {                //获取品牌
                    return this.brand;                    //this.可以省略,你不加系统会默认给你加
                }
                     

7. this关键字的概述和应用

A:this关键字特点
    * 代表当前对象的引用 
B:案例演示
    * this的应用场景
    * 用来区分成员变量和局部变量重名

8. 匿名对象的概述和应用
A:什么是匿名对象
    * 没有名字的对象 
B:匿名对象应用场景
    * a:调用方法,仅仅只调用一次的时候。
        * 那么,这种匿名调用有什么好处吗?
            * 节省代码 
        * 注意:调用多次的时候,不适合。匿名对象调用完毕就是垃圾。可以被垃圾回收器回收。
    * b:匿名对象可以作为实际参数传递
C:案例演示
    * 匿名对象应用场景

class Demo3_Car {
    public static void main(String[] args) {
     

        method(new Car());

        method(new Car());                //匿名对象可以当作参数传递
    }

    //抽取方法提高代码的复用性
    public static void method(Car cc) {    //Car cc = new Car();
        cc.color = "red";
        cc.num = 8;
        cc.run();
    }
}

class Car {
    String color;            //颜色
    int num;                //轮胎数

    public void run() {
        System.out.println(color + "..." + num);
    }
}
 

 

 

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!