文章目录
1、类与对象概念
1.1 面向对象与面向过程
(1)面向过程:强调的是功能行为,以函数为最小单位,考虑怎么做。
(2)面向对象:强调具备了功能的对象,以类/对象为最小单位,考虑谁来做。
1.2 类与对象的概念
(1)类:对一类事物的描述,是抽象的、概念上的定义
(2)对象:是实际存在的该类事物的每个个体,因而也称为实例
(3)类与对象的关系:对象是类的实体,类是对象的抽象
2、类的结构
2.1 属性
- 类属性是可以直接通过“类名.属性名”来访问和修改。
- 类属性是这个类的所有实例对象所共有的属性。
- 直接定义在类的一对{}内
- 可以在声明属性时,指明其权限,使用权限修饰符(private、public、缺省、protected等)
- 类的属性,根据其类型,都默认初始化值
- 加载到堆空间中(非static)
局部变量
- 声明在方法内、方法形参、代码块内、构造器形参、构造器内部的变量
- 不可以使用权限修饰符
- 没默认初始化值
- 加载到栈空间
2.2 方法
2.2.1 方法的声明
权限修饰符 返回值类型 方法名(形参列表){
方法体
}
2.2.2 可变个数形参方法
/*
*可变个数形参的格式:数据类型 ... 变量名
*当调用可变个数形参的方法时,传入的参数个数可以是:0-n个
**/
public void test(String ... strs){
for(int i = 0;i < strs.length;i++){
System.out.println(strs[i]);
}
}
2.2.3 java的值传递方式
(1)形参与实参
形参:方法定义时,声明的小括号内的参数
实参:方法调用时,实际传递给形参的数据
(2)基本数据类型与引用数据类型
基本数据类型的变量:赋值的是变量所保存的数据值。
引用数据类型的变量:赋值的是变量所保存的数据的地址值。
(3)值传递机制
如果变量是基本数据类型,此时赋值的是变量所保存的数据值。
如果变量是引用数据类型,此时赋值的是变量所保存的数据的地址值。
2.2.4 递归方法
定义:一个方法体内调用它自身。
2.3 构造器(构造方法)
public 类名(形参列表){
方法体
}
2.3.1 作用
(1)创建对象
(2)初始化对象的信息
2.3.2 使用规则
- 如果没显式的定义类的构造器的话,则系统默认提供一个空参的构造器
- 定义构造器的格式:权限修饰符 类名(形参列表){}
- 一个类中定义的多个构造器,彼此构成重载
- 一旦我们显式的定义了类的构造器之后,系统就不再提供默认的空参构造器
- 一个类中,至少会有一个构造器
2.3.3 属性赋值顺序
(1)默认初始化
(2)显式初始化
(3)构造器中初始化
(4)通过"对象.方法" 或 "对象.属性"的方式,赋值
2.3.4 JavaBean的概念
符合以下标准的Java类
- 是一个公共(public)的类
- 有一个无参的公共的构造器
- 通过setXXX方法设置属性,通过getXXX方法获取属性
2.4 代码块
- 代码块的作用:用来初始化类、对象的信息
- 分类:代码块要是使用修饰符,只能使用static
- 静态代码块作用:初始化类的信息。随着类的加载而执行,而且只执行一次
- 非静态代码块作用:可以在创建对象时,对对象的属性等进行初始化。创建一个对象,就执行一次非静态代码块
- 加载顺序:父类优先于子类,静态优先于非静态
2.5 内部类
定义:Java中允许将一个类A声明在另一个类B中,则类A就是内部类,类B称为外部类。
2.5.1 分类
- 成员内部类(静态、非静态 )
- 局部内部类(方法内、代码块内、构造器内)