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。