其他分享
首页 > 其他分享> > 2022_01_05日结

2022_01_05日结

作者:互联网

1.成员变量和局部变量的区别(面试题)

    1)书写位置不同
         局部变量:在方法定义中或者方法声明上
         成员变量:在类中方法外(范围大)  
    2)内存中的位置不同
        局部变量:在栈内存中
        成员变量:在堆内存中   new新建
    3)存在时间--生命周期不同
        局部变量:随着方法的调用而存在,随着方法调用结束而消失
        成员变量:随着对像的创建而存在     
    
    4)初始化值不同  
        局部变量:要么先定义后初始化,要么之间初始化
        成员变量;存在系统初始化,可以赋值,但是一般不会直接赋值,一般都是通多对象名.成员变量名=赋值
         
         

2.方法形式参数问题(如果是基本数据类型/引用数据类型)!!!!!!重要

----------后期面向对象研究的都是引用数据类型-------

形式参数如果是基本数据类型
    形式参数的改变不影响实际参数  
    
 如果形式参数是引用数据类型(数组,类,接口),他们作为形式参数,他们的改变会影响实际参数,因为引用的实际数据类型是通过空间地址值传输,堆内存中的地址值不会立即消失------ 
        String除外,特殊的引用类型(字符串是常量,不能够被更改)
​
 形式参数是 类 .
 
 
 
 Object

3.什么是匿名对象

  没有名字的对象 
   
   
   格式   
        new 类名();    --- 不需要再栈内存中开辟空间
                          直接在堆内存中申请空间
                          创建完毕后就等待垃圾回收器回收
        
        
           好处:
               1)实际开发中,匿名对象不要多次  一次即可
                    一般情况下:移动端--Android(基于JavaSE)搞app,考虑内存问题
                    后期  B/S结构  大型网站  
​

4.如何在属性加入"私有化"

setXXX   赋值     getXXX 输出值

5.this关键字特点

当局部变量隐藏了成员变量时    提供了一个关键字  this  指向变量的空间地址值
                                      即空间地址值引用
​
this.变量名  

手机有品牌(brand),价格,颜色,内存等属性,手机可以打电话,发短信, 打游戏等行为,请使用面向对象的方式描述手机并且进行测试(加入封装) 属性私有化-提供对外公共访问方法操作

public class Phone {
    private String brand;
    private int price;
    private String color;
    private String memory;

    public String getBrand() {
        return brand;
    }

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

    public int getPrice() {
        return price;
    }

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

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public String getMemory() {
        return memory;
    }

    public void setMemory(String memory) {
        this.memory = memory;
    }

    public void callPhone(String name){
        System.out.println("我打算给"+name+"打电话");
    }
    public void sendMsg(String sendMsg){
        System.out.println("要不要给"+sendMsg+"发短信");
    }
    public void playGame(String gameName){
        System.out.println("累了要不要玩会儿"+gameName+"放松一下");
    }
}
public class PhoneTest {
    public static void main(String[] args) {
        Phone phone = new Phone();
        phone.setBrand("三星");
        phone.setPrice(6399);
        phone.setColor("白色");
        phone.setMemory("256G");
        System.out.println("这款手机是"+phone.getBrand()+ ",价格是" + phone.getPrice() + ",是" + phone.getColor()+ "的,内存是" + phone.getMemory());
        phone.callPhone("詹姆斯.高斯林");
        phone.sendMsg("网易云");
        phone.playGame("拉格朗日");
    }
}
 

标签:01,String,void,数据类型,phone,内存,2022,public,日结
来源: https://blog.csdn.net/pigssss/article/details/122334069