欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

面试对象基础(上)

程序员文章站 2022-04-06 20:49:38
...

面试对象基础(上)

一、初步认识
思考:把大象装冰箱一共分几步?
①打开冰箱
②把大象装进去(存储大象)
③关闭冰箱

如何使用面向对象思想思考上述问题呢?

人{

    拉(冰箱){
        冰箱.打开()   
    }

    指挥(动物){
        动物.进入()   
    }

    推(冰箱){
        冰箱.关闭()
    }
}

冰箱{

    打开(){}

    存储(){}

    关闭(){}

}

大象{

    进入(){}

}

猴{
    进入(){}
}

狮子{
    进入(){}
}

面向对象和面向过程:
面向过程:强调的是功能行为
面向对象:将功能行为封装进对象,强调的是具备了功能行为的对象

面向对象更加注重前期的设计
①就是对类的设计
②设计类就是设计类的成员:属性 & 方法

class Animal{
    //属性
    String name;
    char gender;
    int age;

    //方法-行为   
    public void eat(){
        System.out.println("吃饭");
    }

    public void sleep(){
        System.out.println("睡觉");
    }

}

若需要具体到某一个事物,通过 new 关键字创建对象

Animal a1 = new Animal(); //
a1.name = "大象";
a1.gender = '男';
a1.age = 2;

a1.eat();
a1.sleep();

System.out.println(a1.name + "," + a1.age);

类和对象:
类:对现实生活中一类事物的描述,抽象的
对象:是一个实实在在的个体

二、属性(也叫成员变量,也叫实例变量)
成员变量与局部变量的区别?
①作用域不同
②内存中的位置不同
③成员变量有默认值,局部变量没有默认值(局部变量使用前必须赋初始值)

成员变量的默认值:
1、基本数据类型:
byte short int —> 0
long —> 0L
float —> 0.0F
double —> 0.0D
char —> ‘\u0000’
boolean —> false

2、引用数据类型: —> null
|– 类(class)
|– 接口(interface)
|– 数组([])

为属性赋初始化值的方式
①使用默认值
②直接显示赋值

三、参数的值传递
基本数据类型: 将基本数据类型作为参数,传递给方法,方法运行结束后,原值不会发生改变
引用数据类型: 将引用数据类型作为参数,传递给方法,方法运行结束后,原值会发生改变

内存管理:
分配: JVM自动为其分配内存空间
释放:JVM通过垃圾回收机制自动的释放内存空间

垃圾回收机制: 将内存中的垃圾对象释放

垃圾对象:不再被任何引用指向的对象
Person p = new Person();
p = null;
System.gc(); //通知垃圾回收机制释放内存,但并不能保证立即释放,加快释放。

四、方法的声明和使用
1、方法的格式
修饰符 返回值类型 方法名(参数列表){
//功能语句
return 返回值;
}

返回值类型:说明方法运行后有结果,那个结果的数据类型。
参数列表:就是局部变量,可以有0个或多个,每个参数之间以 “,” 分隔
return : 用于结束当前方法
返回值:方法运行结束后,返回具体结果的值

2、方法的注意
①“返回值类型”与“返回值”的数据类型需要保持一致
②调用方法通过方法名和参数列表,注意方法名和参数列表(参数的个数、参数的类型)必须一致
③若声明了“返回值类型”说明该方法运行后有结果,若调用者需要用到该结果可以声明同类型变量接收。
④若方法运行结束后,不需要返回任何结果给调用者时,方法“返回值类型”处声明为 void (void : 表示没有返回值)
⑤方法中只能调用方法,不能声明其他方法

3、声明方法的两点明确
①方法是否需要返回结果给调用者
明确是否需要返回值类型,返回值类型是什么
②方法是否有未知的数据参与运算
明确是否需要参数列表,需要几个

4、方法重载(Overload)
前提:在同一个类中
①方法名相同
②参数列表不同(参数的个数、参数的类型)
注意:与返回值类型无关

相关标签: 对象 面向对象