面向对象:oop(Object Oriented Programming)

一切皆对象,java当中最基本的操作单位就是对象

1.对象:符合类的特征的独立个体,真实存在的
符合类的实例化个体

2.类/类型:所有对象共同的特征或行为,抽象出来成为类,不真实存在的

举例:
	学生类:
	学生的特征: 成员变量/属性
	名字 年龄 学号 班级
	学生的行为(可以做的事): 成员方法
	吃饭 睡觉 打游戏 学习

3.类和对象的关系:

先要有类,才能创建类的实例化对象

4.类的定义
1)分类
有实际意义的类 - 实体类

成员变量:

引用数据类型的成员变量默认初始值:null
基本数据类型的成员变量默认初始值:0

成员方法:

没有实际意义的类 - 普通类
作用:用来放主方法

5.使用对象的步骤:

1)先要定义/声明类

public class Student{
		String name
		study()
	}

2)在普通类中创建 类的对象

Studnet stu = new Studnet();

3)通过对象 使用类中的成员变量 和 成员方法
使用变量:
对象名.变量
使用方法:
对象名.方法

6.局部变量 和 成员变量的区别:
1)声明位置

局部变量:声明在方法中
成员变量:声明在类中

2)初始化区别

局部变量: 使用前必须声明 + 初始化
成员变量: 使用前可以不用初始化

3)个数区别

局部变量: 声明多少个就有多少个局部变量
成员变量: 对象有多少个,成员变量就有多少个

4)JVM内存中的区别

局部变量: 存在栈中,方法结束,变量消失		
成员变量: 存在堆中
第一次使用类[新建类的对象]之前,进行类加载

7.构造方法/构造器
1)作用: 为了给成员变量初始化
2)特点:

a.方法名必须和类名一致
	b.修饰词可用可不用 (public)
	c.如果没有写构造器,系统默认调用无参构造器
	d.如果手动调用了有参构造器,将不会自动添加无参构造器
	e.构造方法没有返回值类型

8.this关键词

this表示当前对象
this表示一个动态的值 - 哪个对象调用就表示哪个对象
1)在构造方法中,成员变量和临时变量重名时,需要借助this关键词表示成员变量
	ps: this.name = name
		this.name 表示的就是成员变量
2)this可以调用成员变量和成员方法
	在调用方法时,this可以省略
3)构造方法之间可以互相调用,使用this关键词
	调用无参构造方法: this()
	调用有参构造方法: this(参数)
4)在构造方法中使用this(参数),只能放在方法的第一行

9.方法重载

1)前提:必须在同一个类中,几个方法的方法名相同,方法参数不一样,叫做方法的重载
2)方法参数不一样的情况

a.参数个数不一样
		method(int a)
		method(int a , int b)
b.参数的类型不一样
		method(int a)
		method(Stirng a)
c.参数的类型顺序不一样
		method(int a, double b)
		method(double a, int b)
d.方法参数名不一样,不能造成重载
		method(double arr, int bb)
		method(double a, int b)

3)方法的重载跟返回值无关