面向对象&&面向过程,重在理解本质
生如逆旅,一苇以航!
文章目录
面向过程&&面向对象
-
属性+方法 -->类
-
面向过程
- 步骤清晰简单,第一步…第二步…
- 面向过程适合处理一些简单的问题
-
面向对象
- 物以类聚,分类的模式思维,思考问题时首先思考问题会进行哪些分类,然后对这些分类进行单独的思考。最后,才对某个分类下的细节进行面过程的思考
- 面向对象适合解决复杂的问题,适合处理多人协作的问题
-
对于描述复杂的事务,为了从宏观上把握,从整体上理性分析,我们需要使用面向对象的思路去分析整个系统。但是具体到微观的操作,我们仍然需要使用面向过程的思路去处理。
面向对象(Object-Oriented Programming OOP)
-
面向对象的实质,以类的方式组织代码,以对象的形式(封装)数据
-
三大特征(先大概了解即可)
- 封装
- 假如你有一万元,你需要把他们放在一个盒子里,同时你也需要留一个小口在你需要的时候去拿
- 继承
- “儿子继承了父亲的特性”
- 多态
- 每个人学习java,最终学的深度是各不相同的
- 封装
-
从认识的理论来说,先有对象后有类,对象是具体的事物,类时是抽象的
- 人是对象,有的人当老师,有的人当医生…
-
从代码运行的角度来说,先有类后有对象
- 如果你没有"对象",直接 new 一个就有"对象"了
方法的调用
package com.operator;import com.operator.com.operator.Student;public class Demo1 { public static void main(String[] args) { Student.say(); }}//*********************************************************public class Student { public static void say(){ //因为含有static 所以是静态方法 //如果是静态方法,在某个类(Demo1)直接用类名(Student).方法即可 System.out.println("学生说话了"); }}
同一个类中方法之间的相互调用实例
public class Demo1 { public static void main(String[] args) {} //在同一个类中,两个普通非静态的方法之间可以相互调用,不会报错 public void a(){ b(); } public void b(){ ; } //在同一个类中,两个普通静态的方法之间可以相互调用,不会报错 public static void c(){ d(); } public static void d(){} //static是和类一起加载的 public static void e(){ f(); //所以一个已经存在的去调用一个还没有存在的所以报错 } //不含static的普通方法是在类实例化之后才存在的 public void f(){}}
值传递&&引用传递
- 一个类中只能有一个public class 但可以有多个 class
- 引用传递: 传递的是对象 本质还是值传递
//值传递public class Demo1 { public static void main(String[] args) { int a=1; System.out.println(a);//1 change(a); System.out.println(a);//1 } private static void change(int a){ a=10; }}//引用传递public class Demo1 { public static void main(String[] args) { Person person=new Person(); System.out.println(person.name);//null change(person); System.out.println(person.name);//Cx_330 } private static void change(Person person){ person.name="Cx_330"; }}class Person{ String name;}
类
-
一般在一个项目中我们只需要定义一个 main方法在一个类中即可,通过调用的方法实现其它类中某些功能实现
-
任何类都只由两部分组成 属性(字段) 方法
-
类是抽象的,需要实例化
-
类实例化之后会返回一个自己的对象
//假设Student是一个类Student student=new Student();//那么进行完这一行代码之后: student对象是Student类的一个实例化
构造器
- 与类名相同,没有返回值的public方法
- 构造器的作用
- 实例化初始值
- 使用new关键字,本质是在调用构造器
- 用来初始化值
- 实例化初始值
- 一旦定义了有参构造,无参就必须显示定义
- 在idea中有一个快捷键 Alt+insert 会自动生成构造器