面向对象1
面向对象
java类及类的成员:
属性、方法、构造器、代码块、内部类
面向对象的三大特征:
封装性、继承性、多态性、(抽象性)
面向过程(POP):
强调的是功能行为,以函数为最小单位,考虑的是怎么做
面向对象(OOP):
强调的是具备了功能的对象,以类(对象)为最小单位,考虑的是谁来做
需要注意的知识点:
匿名对象:
声明对象一般包括两个步骤:第一个是在堆内存中生成这个对象,第二个是将该对象在堆内存中的首地址赋值给栈内存中的变量,使之成为引用变量。
匿名对象其实就是说省略了第二步,匿名对象经常用于形参传递值的时候。
优势:
1、我们可以节省一部分存储匿名对象引用的栈内存2、方便简洁
可变个数形参:
jdk5.0的时候开始加入,其实就是数组(jdk5.0之前就是使用的数组),并且我们如果在同一个类中同时定义 以下两个函数:
public void show(String ... strings){
}
public void show (String[] strings){
}
是会报错的,因为他们两个就是一样的。看起来没啥用,但是可以省一部分时间。
使用注意:
可变个数形参必须在参数列表的末尾,并且同一个方法最多使用一个可变个数参数
方法参数传递机制:
可以参考c++中的值传递和引用传递
在java中我们进行基本数据类型和引用数据类型的传递时,是不同的。
基本数据类型:
数据的值直接放在栈内存中。所以我们在进行参数传递的时候,他就是值传递 (C++)类似于:
int a=1;
int b=a;
我们虽然将a赋值给了b但是,a 和b在内存中依然是两个对象
引用数据类型
对象是存放在堆内存中的,栈内存中是存放的引用值。所以我们在进行参数传递的时候,他就是引用传递 (C++)类似于
int& a=new int[1];
int& b=a;
a和b存放的是地址,是指针,在java中其实也是一样的,只不过是栈内存中存放着堆的地址值(栈中的变量就类似于C++中的指针)
javaBean:
所谓的javaBean是符合以下标准的java类:
1、类是公共的2、有一个无参的构造器(public)3、有和属性对应的get和set方法(public)
浙公网安备 33010602011771号