7.11LJY

 作业 day08


一.面向对象

1:局部变量和成员变量的区别?
    1.局部变量在方法上和方法中,成员变量是在类中,方法外声明的;
    2.局部变量是随方法的调用创建进入栈内存中;成员变量随对象的创建是加载在堆内存;
    3.局部变量随方法的调用而存在,调用结束而消失;成员变量则是在创建对象时就调用,随对象消失而消失;
    4.成员变量有默认初始化值;局部变量没有,必须定义赋值才能使用;

2:匿名对象是什么?应用场景是什么?
没有名字的对象;仅仅调用一次的时候;
3:封装是什么?java中封装的体现有哪些?请举例说明。
 是指隐藏对象的属性和实现细节,仅对外提供公共访问方式;
如使用private 进行封装;
class Student {
    private int age ;
    private String name;
    
    public void setAge(int age) {
        this.age = age;

        
    }

    public void setName(String name) {
        this.name = name;
        
    }

    public int getAge() {
        return age;
    
    }

    public String getName() {
        return name;
        
    }

    public void run() {
        System.out.println("好好捣蛋");
            
    }
}如上,在student类外无法直接调用成员变量age 和name
但是提供了getXxx 和setXxx来对其进行访问和设置;


4:this关键字是什么?this关键字的应用场景?
用于局部变量与成员变量重名的时候;
用this.变量名可以表示成员变量

5:如何使用一个类的成员
先创建对象
类名 对象名 = new 类名();
如 Phone p1 = new Phone(); //创建一个对象为p1
 使用成员方法 
对象名.方法名();
p1.function();
使用成员变量
对象名.变量;
p1.brand;


========================================================
========================================================

二. 内存图

画图操作:

1.一个对象的内存图



2.两个对象的内存图


3.三个引用两个对象的内存图



========================================================
========================================================

三. 自定义类

Student 类

Phone 类

Car 类

class Test1 {
    public static void main(String[] args) {
        Student s1 = new Student();
        s1.setAge(18);
        s1.setName("raruto");
        System.out.println(s1.getName() + "..." + s1.getAge());
        s1.run();

        Car c1 = new Car();
        c1.brand = "碰碰车";
        c1.carNum = 666666;
        System.out.println(c1.brand + "--" + c1.carNum);
        c1.run();

        Phone p1 = new Phone();
        p1.setBrand("山寨iphone");
        p1.setPrice(998);
        System.out.println(p1.getBrand() + "___" + p1.getPrice());
        p1.function("死机");


    }
}

//Student 类Phone 类Car 类

class Student {
    private int age ;
    private String name;
    
    public void setAge(int age) {
        this.age = age;

        
    }

    public void setName(String name) {
        this.name = name;
        
    }

    public int getAge() {
        return age;
    
    }

    public String getName() {
        return name;
        
    }

    public void run() {
        System.out.println("好好捣蛋");
            
    }
}

class Car {
    String brand;
    int carNum;
    public void run() {
        System.out.println("翻车了翻车了");
    }

}

class Phone {
    String brand;
    int price;

    public void setBrand(String brand) {
        this.brand = brand;
    
    }

    public String getBrand() {
        return brand;
    
    }

    public void setPrice(int price) {
        this.price = price;
    
    }

    public int getPrice() {
        return price;
    
    }

    public void function(String func) {
        System.out.println(func);
    
    }
}

  

原文地址:https://www.cnblogs.com/lijuenyi/p/9293204.html