1. java中参数传递的问题?
答:1)如果是基本数据类型,那么在方法中赋值将其改变,不会对成员变量有影响
2)如果是引用类型,那么会对成员变量有影响,因为他们指向堆中同一对象。
2. 说说面向对象:
1) 思想特点:面向对象是一种更符合人们习惯思考的思想,它可以把复杂的事情简单化,可以让我们由执行者变为指挥者
2) 面向对象是基于面向过程的
A. 面向过程是以函数为基础,完成各种操作,强调的是过程,例如C语言
B. 面向对象是以对象为基础,完成各种操作,强调的是结果。
3. 类与对象的关系
类由成员变量(事物的属性),成员函数(事物的行为),构造函数所组成
类是相关事物属性和行为的集合,是一个抽象的概念。
对象,是某种事物的具体的存在,具体的表现形式。
4. 成员变量和局部变量的区别
1)定义位置:
1.成员变量定义在类中方法外
2.局部变量定义在类中方法内,或方法的形参上
2)初始化值
1.成员变量有默认的初始化值
2.局部变量没有
3)存储位置
1.局部变量在栈中,随着方法的存在而存在
2.成员变量在堆中,随着对象的存在而存在
5.封装的概念:
封装是指隐藏事物的属性及实现细节。仅对外提供一个公共的访问方式。
6.为什么要写get和set方法
成员变量被private修饰后要想在别的类中访问它就应该定义set和get方法,set是设置,而get是获取。
7.构造方法:
1)概念:与类名相同,没有确切的返回值类型,也没有返回值
2)作用:给对象的属性初始化
3)注意事项:a:如果没有明确给出一个构造函数,那么系统会默认给出一个无参的构造函数。b:如果有构造函数那么系统将不会给出无参构造。c:构造方法的重载体现在参数列表不同。d:构造函数与普通函数不会发生重载。
8.给私有成员变量赋值的方法:
1)set方法。2)构造函数。3)定义时直接赋值
9.构造方法和set方法的区别
构造方法是在创建对象的时候,给变量初始化,只能赋值一次
Set方法是建立对象后,可以多次赋值。
10.this关键字和super关键字的区别:
1)this:是指所在函数所属对象的引用。
super:指父类的内存空间的标志
2)this在局部变量隐藏成员变量的时候用,可以调用成员变量
super在子父类关系中,当存在相同成员名字的时候可以用super区分。当子类调用父类构造函数时可以使用super.
3)this调用本类的构造函数(this();),成员变量,成员函数
super调用本类的构造函数(super();),成员变量,成员函数
11.static关键字:
1)概念:static修饰成员变量和成员方法
被静态所修饰的成员可以被该类的所有对象所共享
2)当多个对象共享一个数据时,这个数据就可以被static修饰。
3)特点:1.随着类的加载而加载,优先于对象存在
2.可以直接被类名调用
3.静态只能访问静态
4)注意事项:1.被static修饰的方法没有this关键字,因为static是随着类的加载而加载的,而this是创建对象才会存在的
2.静态只能访问静态
3.被static修饰的即可被类名调用,也可被对象调用,
推荐使用类名调用
12.继承:
1)概述:当多个类有相同的属性和行为,把这些属性和行为都提取到一个类中,其他的类只需要继承这个类即可,这个类就是父类,其他的类就是子类。
2)好处:1)可以提高代码的复用性
2)可以让类和类产生关系,多态的前提。
3)特点:java中只支持单继承,不支持多继承,但是支持多层继承。
4)当子类是父类的一种。
13.重写 override 重载 overload
1)重写:当在子父类关系中,子类中有跟父类的方法声明完全一样的,也就是说方法名,参数列表,返回值类型必须都相同.
重载:在子父类关系中,或在一个类中,方法名相同,参数列表必须不同,与返回值类型无关。
14.子父类间成员方法的注意事项:
1)父类的私有的方法不可以被覆盖。 因为私有方法就不可以被继承,所以跟不存在复写
2)子类的方法权限一定要大于等于父类的。
15.子父类间构造方法的特点和注意事项:
1)子类中的构造方法的第一行会有一个默认的父类的无参构造方法,因为继承会获取到父类的非私有数据,那么我们要通过父类的构造方法对其非私有数据进行初始化。
2)如果父类无无参构造方法,那么子类怎么访问父类构造
a.在子类的构造函数中写一个super(参数)。
b.在子类中访问自己的构造函数(不建议使用)
3)构造方法执行完后不一定要创建对象,例如,父类的构造方法执行后就并没有创建父类的对象。
4)注意this和super只能定义在第一行,而且只能二取一
16.子父类间静态代码块,构造代码块还有构造函数的执行顺序。
父类静态代码块--子类静态代码块—父类构造代码块—父类构造函数—子类构造代码块—子类构造函数。
1. 静态代码块:初始化静态成员变量
2. 构造代码块:1)初始化非静态成员变量
2)把构造函数的共性内容提取出来,提高代码复用性
17.final关键字的概述和使用:
1.当有些东西不想在被改变的时候,就用final修饰,final是最终的意思,它可以修饰类,变量,成员方法
2.被final修饰的成员
类:不能在被继承
成员方法:不能在被重写
变量:被final修饰的变量其实是一个常亮
常量分为:字面值常量 和 自定义常量
3. 被final修饰常量,必须被显示赋值一次。且创建对象以后不能在被赋值。
可以直接赋值,在构造方法中,在构造代码块中
4. 被final和static修饰的
在静态代码块(特例和接口除外?)中,或定义时直接赋值。
|
|