本帖最后由 LiuYongqiang 于 2016-4-20 00:37 编辑
java基础知识---面向对象(一) 1.面向对象? 1、面向对象是基于面向过程,面向对象强调的对象,面向过程强调的是过程(函数)。 2、聊到面向对象,不得不提的就是它的三个思想特点: A:更符合咱们人们的思考习惯。 B:把复杂的事情变得简单化。 C:把程序员从执行者变成了指挥者。 2.面向对象三大特征(封装,继承,多态) 3.Java描述事物最基本的单位是类,计算机最基本的存储单位是字节,四个最小... 4.类是什么? 类,对象,成员变量,成员方法? 类: 属性和行为的集合,一个抽象的概念。 对象:类的具体体现,实现。 属性(成员变量):名词,用来描述事物身上的信息的 和以前咱们写局部变量一样,只不过位置发生改变,现在写在类中,方法外。 行为(成员方法):动词,事物能做什么 和以前咱们定义方法是一样的,先把static去掉。 5.成员变量与局部变量的区别 局部变量和成员变量的区别: 1、在类中的定义位置不同。 局部变量:方法中,或者方法形参上。 成员变量:类中,方法外。 2、在内存中的存储位置不同。 局部变量:栈 成员变量:堆 3、生命周期不同。 局部变量:和方法相关。 成员变量:和对象相关。 4、初始化值不同。 局部变量:没有默认值,必须先定义,在赋值,然后才能使用。 成员变量:有默认值。 整型:0 浮点型:0.0 字符:'\u0000' 布尔:false 引用类型:null 静态变量和成员变量有哪些区别: 1、所属不同。 静态变量:类。 类变量。 成员变量:对象。 对象(实例)变量。 2、在内存中的存储位置不同。 静态变量:静态区。 成员变量:堆。 3、在内存中的出现时机不同: 静态变量:类加载。 成员变量:对象的创建。 4、调用方式不同。 静态变量:类名. 或者是 对象名. 成员变量:只能通过 对象名. 的方式来调用。 6.匿名对象的应用场景? A:当对 对象(成员)方法仅调用一次的时候。 B:匿名对象可以作为实际参数进行传递。 7.封装?封装就是private,这句话对吗? 概述:隐藏对象的属性和实现细节,仅对外提供一个公共的访问方式。 36.this与super的区别?调构造方法的区别? this:代表本类当前对象的引用。 super:当前对象父类的引用。 调用构造方法: this( 参数 ) : 调用本类的其他构造 super( 参数 ) : 调用的父类的其他构造 8.Java中参数传递问题?Java中只有值传递,引用传递传递的也是地址值,地址值也是值 9.构造方法格式特点? 1、方法名和类名完全一致。(包括大小写) 2、没有明确的返回值类型。(注意,连void都没有) 3、没有明确的返回值。(可以有return) 10.说明一个对象的创建过程做了哪些事情? 1、通过类加载器把 Student类的字节码文件对象(.class文件)加载到内存中。 2、在栈的main函数中创建一个 学生类的引用s,等待接收堆中传过来的地址值。 3、看到new以后,会去向堆内存申请开辟空间。 4、成员变量进堆,系统给出默认值,同时,成员方法进方法区,有类名做标记,然后和堆中的地址做关联。 5、执行显示初始化,对成员变量进行赋值(如果有)。 6、构造方法进栈,对成员变量进行初始化,完了以后构造方法弹栈,至此,对象创建完毕。 7、把堆中,对象的地址值 给 栈中的学生类的引用s。
|