一.相关概念
- 编程思想:大多数开发人员在遇到实际需求时的代码思考过程
- 面向过程:遇到问题,把大问题拆解成小问题,继续把小问题拆解成更小问题…,自顶向下,逐步求精
- 面向对象:遇到问题,先找到解决问题的对象,通过对象间彼此配合,相互联系共同解决问题
二.对象的组成
- 对象:万物皆对象,一切客观存在的事物都是对象
- 属性:特征,代表对象有什么
- 方法:能力,代表对象可以做什么
三.类和对象的关系
- 类是对象的模板,类和对象–一对多,通过一个类可以创建多个对象
- 对象是类的实例,对象中需要满足类中对属性和方法的定义
四.类的组成
-
语法
class 类名{//类是代码的容器,类是程序的组件,类是对象的模板 //属性:对象的特征,对象有什么 //方法:对象的能力,对象能做什么 }
-
属性:对象的特征,对象有什么
//类的内部,方法的外部 数据类型 属性名; String name; int age; boolean sex; double score;
-
属性:又称实例变量,成员变量,全局变量
-
对比局部变量
-
局部变量 | 属性(全局变量) | |
---|---|---|
位置 | 定义在方法的内部 | 类的内部,方法地外部 |
作用范围 | 从定义行开始到所在代码块结束 | 类的内部 |
默认值 | 没用默认值(先赋值后使用) | 有默认值(和数组默认值相同) |
命名冲突 | 相同作用范围内不允许重名 | 属性可以和局部变量重名,优先使用局部变量 |
-
方法:对象的能力,对象能做什么
//类的内部,其他方法的外部 访问修饰符 返回值类型 方法名(参数表){方法的实现} public void study(){ //学习的实现过程 }
-
方法重载
方法重载的要求: 方法名相同 参数列表不同(参数个数不同,参数类型不同,参数的类型的排列顺序不同) 与返回值类型和访问修饰符无关 //重载方法调用由实参确定,找到与实参对应的形参时,执行此方法 //实参并没有找到对应的形参,按照数据提升链自动向上(向上就近)匹配 //提升链1:byte-short-int-long-float-double //提升链2:char-int-long-float-double //不能出现引用不明确
-
方法:又称实例方法,成员方法
-
-
构造方法
-
作用:用来创建对象
-
语法
访问修饰符 类名(){} public Student(){} //构造方法可以重载 public Student(int a){}
-
特点:
1.构造方法没有返回值,方法名和类名一直 2.如果没有显示定义构造方法,系统默认提供公开无参的构造方法 3.构造方法只能在创建对象时由系统调用一次,不能手动调用
-
五.创建对象
-
语法
类名 对象名 = new 类名(); 例:Student s=new Student();
-
访问属性
//给属性赋值 对象名.属性名=属性值; s.name="AA"; //属性取值 对象名.属性名 s.name
-
访问方法
//调用 对象名.方法名(参数); s.study();
六.对象的创建过程
创建对象【执行构造方法】
- 开辟空间,给属性赋予默认值
- 给属性赋予初始值
- 使用构造方法给属性第三次赋值,执行构造方法内地代码
七.引用
-
java中数据类型分为:基本类型和引用类型
-
引用类型:在堆内存开辟空间,栈空间的引用名仅仅存储地址
类名 对象名|引用名|变量名=new 类名(); //只有程序中出现new,才可以在堆内存中开辟空间
-
基本类型进行相互赋值时,赋值的为字面值;引用类型进行相互赋值时,赋值内容为地址;
-
对null引用类型的数据调属性或者方法会出现
java.lang.NullPointerException(空指针异常)
-
八.this
-
this:当前对象
-
this:当前对象的
- this.属性名:指当前对象的属性,区分局部变量和属性
当局部变量和属性重名时优先使用局部变量,可以使用this.属性名来访问属性 - this.方法名():指当前对象的方法
- this.属性名:指当前对象的属性,区分局部变量和属性
-
this(参数):指调用本类的其他构造方法
this()必须放在构造方法的首行
-
看完如果对你有帮助,感谢点赞支持!