面向对象
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)