day08作业

1.A.在类中的位置不同

成员变量:在类中方法外

局部变量:在方法定义中或者方法声明上

B.在内存中的位置不同

成员变量:在堆内存(成员变量属于对象,对象进堆内存)

局部变量:在栈内存(局部变量属于方法,方法进栈内存)

C.生命周期不同

成员变量:随着对象的创建而存在,随着对象的消失而消失

局部变量:随着方法的调用而存在,随着方法的调用完毕而消失

D.初始化值不同

成员变量:有默认初试化值

局部变量:没有默认初始化值,使用前必须定义,赋值,然后才能使用。

2.匿名对象就是没有名字的对象

应用场景:a.调用方法,仅仅只调用一次的时候。

b.匿名对象可以作为实际参数传递

3.封装是指隐藏对象的属性和实现细节,仅对外提供公共访问方式

人类赋值年龄的问题

用private关键字修饰成员变量

private是一个权限修饰符,可以修饰成员变量和成员方法,被其修饰的成员只能在本类中被访问。

举例:A.把成员变量用private修饰

B.提供对应的getXxx()和setXxx()方法

4.this关键字

(1)调用本类中的属性,也就是类中的成员变量

(2)调用本类中的其他方法

(3)调用本类中的其他构造方法,调用时要放在构造方法的首行

5.可以通过在被访问的类中定义访问权限为public的函数,用来返回数据成员的引用。

class Demo1_Student {
    public static void main(String[] args) {
        Student s = new Student();
        s.name = "小明";
        s.age = 22;
        s.speak();
    }
}

class Student {
    String name;
    int age;
    public void speak(){
        System.out.println(name + " " + age);
    }
}
class Phone {
    public static void main(String[] args) {
        MobilePhone m = new MobilePhone();//创建对象

        m.brand = "苹果";                //调用品牌属性并赋值
        m.price = 8888;                    //调用价格属性并赋值
        System.out.println(m.brand + " " + m.price);
        
        m.call();
        m.sendMessage();
        m.playGame();
    }
}

class MobilePhone {
    String brand;
    int price;
    public void call(){
        System.out.println("打电话");
    }
    public void sendMessage(){
        System.out.println("发信息");
    }
    public void playGame(){
        System.out.println("玩游戏");
    }
}
class Demo2_Car {
    public static void main(String[] args) {
        for (int i = 0;i < 10;i++ ) {
            method(new Car());
        }
    }
    public static void method(Car cc){
        cc.color = "red";
        cc.num = 4;
        cc.run();
    }
}


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

 

posted @ 2018-07-11 16:58  shiki0921  阅读(108)  评论(0编辑  收藏  举报