面向对象的一些小知识点

局部变量:定义在方法中的变量,局部变量只在定义它的方法中有效。
成员变量:定义在累的成员位置上,在整个类中都有效。
在函数中,如果局部变量和成员变量名字和类型都一致,会优先使用局部变量。
构造函数的定义:
1.构造函数是用来创建独享,不用谢返回值类型。
2.构造方法的名字必须要和当前类名一致。
3.参数列表可以喝一般函数列表一致。
构造函数的作用:就是为了给对象初始化的时候使用。
注意:局部变量实在方法中定义的,所以局部变量在栈中开辟空间,必须有初始化值。
在堆中开辟空间存放的数据才会有默认值。
类与对象的关系:
类是对象的模板,对象是累的实例化。
类是抽象的,对象是具体的
先有类,再有对象。
Car c = new Car();
在这个语句中
new car 创建对象
c 对象名
Car 所属类型
只要创建一个类的对象,这个类的所有成员变量就会随着对象在堆中出现而开辟空间并初始化值
注意:如果成员变量和局部变量重名时,在局部位置使用时,采用就近原则。
在JAVA中,如果局部变量和成员变量重名时还想使用成员变量,可以使用this关键字
this关键字的作用就是记录着当前函数的调用地址和区分成员变量和局部变量。
构造方法:默认无参构造:在任何类中都有一个默认无参构造方法,如果不在这个类中书写,那么编译器在执行时默认添加一个无参构造方法
如果在一个类中只要显示书写了一个构造方法,那么就不会添加默认无参构造方法。
一般方法和构造方法的区别:
构造方法只有在创建对象时,使用new关键字才可以调用,一般方法用过对象随时都可以调用。
JAVABean:
1.类中所有成员变量全部私有
2.必须有无参构造方法
3.对外提供getter,setter方法

面向对象中类与对象的关系:
类是对象的模板,对象是类的实例。
类是抽象的,对象是具体的
先有类,后有对象
只要创建一个类的对象,这个类的所有成员变量就会随着对象在堆中开辟空间并初始化值
对象作为方法参数传递*
注意:如果成员变量和局部变量重名时,在局部位置使用时,采用就近原则。
在JAVA中如果成员变量和局部变量重名了,还想使用成员变量,可以使用一个隐式关键字,This
This表示记录着当前函数的调用地址。
this作用:
1.记录当前函数的调用地址
2.区分局部变量和成员变量
构造方法:
默认无参构造方法:在任何类中都有一个默认无参构造方法,如果不在这个类中书写,那么编译器
在执行时默认添加一个无惨构造方法
如果在一个类中只要显示书写了一个构造方法,那么就不会添加默认无参构造方法
一般方法和构造方法的区别:构造方法只有早创建对象时使用new关键字才能调用,一般方法通过对象。方法名随时都可以调用
JAVABean学名,没有官方定义
1.类中所有成员变量全部私有
2.必须有无参构造方法
3.对外提供getter和setter方法

集合
集合与数组的区别:
1.数组需要固定长度,集合的长度可以改变,根据保存的数据扩容
2.数组可以存储基本数据类型还可以存储引用数据类型。集合只能存储引用数据类型,只能存储类的对象
3.从存储类型上。数组只能存储相同类型的数据,集合可以存储不同类型的数据,集合可存储任意类型的引用数据变量。

补充:只要在JAVA中,只要使用双引号辨识的都是String类的对象,都存储在字符串常量池中
在JDK1.7之前,字符串常量池位于方法区,在JDK1.7之后,位于堆中
== 和equals的区别:“==”用于比较基本数据类,尽量不要用来比较引用数据类型,因为比较地址值没有意义
字符串的值在创建后不能被改变,但是栈中的空间地址可以改变。
Object类在JAVA中便是上帝类,是所有类的超类,如果见到一个方法的参数是Object类型的,那么,这里可以传递任意类型的对象
关于static说明:
1.static属于关键字,表静态(修饰成员变量和方法)
2.static修饰的成员变量和方法可以用类名直接调用
3.static修饰的成员变量和方法只和类有关,和对象无关。
4.在静态中不能使用非静态内容。
只要和对象有关的都不能在静态中调用
在静态中不能调用非静态内容,在非静态中可以调用静态内容。
静态方法中不能使用this,因为this和对象有关,记录着对象的
地址,而静态方法中可以没有对象直接运行。

继承
JAVA只支持但继承不支持多继承
一个类中只能有一个父类,不能有多个父类。
注意:子类继承父类之后,就可以调用父类中的成员,private修饰的成员(成员变量,成员函数)不能被子类继承
继承弊端:打破封装性
当子类和父类出现一模一样的成员变量时,自类对象会优先使用自己的成员变量。
如果使用父类的成员变量需要super()
方法重写:子类中出现与父类一模一样的方法时(返回值类型,方法名,参数列表都一样)会出现覆盖效果,也成为方法重写
重载和重写的区别:
重载:
1.在同一个类中
2.方法名相同,参数列表相同
3.和返回值无关
重写:
1.在子类和父类中。
2.必须有继承关系,
3.返回类型相同
4.参数列表相同。

你可能感兴趣的:(面向对象的一些小知识点)