面试对象基础(上)

来源:互联网 发布:天刀女捏脸数据 编辑:程序博客网 时间:2024/06/05 02:05

这里写图片描述

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

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

人{    拉(冰箱){        冰箱.打开()       }    指挥(动物){        动物.进入()       }    推(冰箱){        冰箱.关闭()    }}冰箱{    打开(){}    存储(){}    关闭(){}}大象{    进入(){}}猴{    进入(){}}狮子{    进入(){}}

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

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

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)
前提:在同一个类中
①方法名相同
②参数列表不同(参数的个数、参数的类型)
注意:与返回值类型无关

原创粉丝点击