面向过程
步骤去考虑事物的发展
面向对象
先考虑事物中存在哪些对象
在建立对象与对象的关系
对象
面向对象思想
- 一切客观存在的事物都是对象,万物皆对象
- 任何对象,一定具有自己的特征和行为
静态:属性、变量、成员变量、实例变量
动态:方法、函数、成员方法、实例方法
对象的创建方法
类名 对象名 = new 类名
对象调用属性
对象名.属性名
对象给属性赋值
对象名.属性名 = 值;
对象调用方法
对象名.方法名(实参列表)
类
多个对象抽取其共同点形成的概念成为类
Java中如何定义一个类
1 | 访问权限符 关键字 类名{ |
类与对象的关系
- 类:定义了对象应具有的特征和行为,类是对象的模板
- 对象:拥有多个特征和行为的实体,对象是类的实例
变量
实例变量
用static使用的全局变量不属于实例变量
- 在方法以外,类以内生声明的非静态的成员变量
- 作用域:可以在该类中非静态方法中使用
- 在该类中不能有两个名称相同的成员变量
- 有默认值,基本数据类型默认为0,引用数据类型为null
局部变量
方法内声明的变量:
声明方法
数据类型 变量名
作用域: 声明该变量到变量所在代码块(方法)结束
在该代码块(方法)中不能出现两个名称相同的局部变量
当局部变量与成员变量名称相同时,优先使用局部变量
无默认值
方法
实例方法
在类中声明的非静态方法
比如:
1 | Scanner sc = new Scanner(System.in); |
- static修饰的方法中可以直接使用static修饰的成员,如果要使用非static修饰的成员必须先在该方法中创建该类对象,再通过对象调用属性和方法
- 非static修饰的方法中可以使用任何成员
构造方法
定义
类中的特殊方法,主要用于创建对象.
特点
- 名称与类名完全相同
- 没有返回值类型
- 创建对象时,触发构造方法的调用,不用通过句点手动调用
注意
如果没有在类中显示定义构造方法,则编译器默认提供无参构造
对象的创建过程
注意啦,注意啦,敲黑板,有好多资深程序员都不知道的冷知识。
- 内存中开辟对象空间
- 为各个属性赋予初始值
- 执行构造方法中的代码
- 【将对象的地址赋值给变量】
构造方法
作用
创建该类对象
写法
1 | 访问权限修饰符 类名 (形参列表){ |
如果没有写构造函数,系统将帮助我们自动给该类生成一个无参构造函数
如果类中已经有了构造函数,系统将不再为我们自动生成构造函数
This关键字
this : 谁调用this所在的方法,this就代表谁。
当局部变量与成员变量名称一致时,可以区分局部变量与成员变量。
只能在非静态方法中使用。