java核心思想就是OOP
OOP就是面向对象编程
OO就是面向对象
面向对象思想
面向过程只适合处理一些简单的问题,而面向对象是分类思维,适合处理复杂的问题,适合需要多人协作的问题。
从整体上合理的分析:我们需要使用OOP的思维来分析整个系统,但是到了具体的细微操作,仍然是需要面向过程的思维去处理。
什么是面向对象编程
面向对象编程的本质:就是以类的方式组织代码,以对象的组织(封装)数据。
对象是具体的事物,类是抽象的
类是对象的模板
三大特性
- 封装:封装是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。
- 继承:继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。
- 多态:多态是同一个行为具有多个不同表现形式或形态的能力。
值传递和引用传递
- 按值传递:值传递是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。
- 按引用传递:引用传递其实就弥补了上面说的不足,所以引用传递就是直接把内存地址传过去,也就是说引用传递时,操作的其实都是源数据,比如Object,二维数组,List,Map等除了基本类型的参数都是引用传递。
创建和初始化对象
- 使用new关键字来创建对象
在使用new关键字来创建一个对象时,除了在堆中分配了内存空间,还会对创建好的对象进行初始化以及对类的构造方法的调用。
- 类的构造器也称为构造方法
构造器在创建对象是必须要调用,并且满足以下两个特点
- 必须和类的名字相同
- 必须没有返回值,也不能用void
一个类在你创建的时候它就会生成一个默认不显示的无参构造器,当你手动定义了一个显示的的构造器后默认的构造器不存在了。
创建对象内存分析
方法区是特殊的堆
package com.OOP;
public class Demo01 {
public static void main(String[] args) {
Pet dog = new Pet();
dog.name = "旺财";
dog.age = 3;
dog.shout();
System.out.println(dog.name);
System.out.println(dog.age);
Pet cat = new Pet();
}
}
package com.OOP;
public class Pet {
public String name;
public int age;
public void shout(){
System.out.println("叫了一声");
}
}
Snipaste_2021-03-31_13-48-09.png
网友评论