面向对象1
前言
1、Java的核心思想就是oop(面向对象编程)
2、面向过程(线性思维)
- 过程清晰简单,第一步做什么,第二步做什么...
- 适合处理一些简单的问题
3、面向对象
- 物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进行面向过程的思索。
- 适合处理犊砸的问题,适合处理需要多人协作的问题。
4、对于描述复杂的事物,为了从宏观上把握,从整体上合理分析,我们需要使用面向对象的思路来分析整个系统。但是,具体到微观操作,仍然需要面向过程的思路去处理。
什么是面向对象
- 面向对象编程(Object-Oriented Programming,OOP)
- 面向对象的本质:以类的方式组织代码,以对象的方式组织(封装)数据。(☆)
- 抽象
- 三大特性
- 封装
- 继承
- 多态
- 从认识论角度考虑,是先有对象后有类。对象,是具体的事物。类,是抽象的,是对对象的抽象。
- 从代码运行角度考虑,是先有类后有对象。类是对象的模板。
回顾方法及加深
一:方法的定义
- 修饰符
- 返回类型
- break:跳出switch,结束循环(continue结束一次循环)
return:结束方法,返回一个结果!
- 方法名:注意规范 驼峰原则、见名知意
- 参数列表:参数类型,参数名
- 异常抛出:(后面详解)
二:方法的调用:(重难点 递归)
- 静态方法
- 非静态方法
package com.oop.demo01; //学生类 public class Student { //非静态方法 public void say(){ System.out.println("学生说话了"); } }
package com.oop.demo01; public class Demo02 { public static void main(String[] args) { //实例化这个类 new //对象类型 对象名 = 对象值; Student student = new Student(); student.say(); } //static 的方法,是和类一起加载的 public static void a(){ //不能直接用 b(); } //类实例化 之后才存在 public void b(){ } }
-
形参和实参
-
package com.oop.demo01; public class Demo03 { public static void main(String[] args) { //实参和形参类型要对应! int add = new Demo03().add(1, 2); System.out.println(add); } public int add(int a,int b){ return a+b; } } -
值传递和引用传递
-
package com.oop.demo01; //值传递 public class Demo04 { public static void main(String[] args) { int a = 1; System.out.println(a); //1 Demo04.change(a); System.out.println(a); //1 } //返回值为空 public static void change(int a){ a = 10; } } package com.oop.demo01; //引用传递:对象,本质还是值传递 public class Demo05 { public static void main(String[] args) { Person person = new Person(); System.out.println(person.name); //null Demo05.change(person); System.out.println(person.name); //朴海 } public static void change(Person person){ //person是一个对象:指向的 --->Person person = new Person();这是一个具体的人,可以改变属性! person.name = "朴海"; } } //一个类可以有多个class,但只能有一个public //定义一个Person类,有一个属性:name class Person{ String name; //默认是null } -
this关键字
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!