Java基础——面向对象基础(一)

本文介绍了Java面向对象的基础知识,包括面向对象与面向过程的区别、面向对象的两大要素——类和对象,以及对象的内存解析。重点讲解了类的设计,如属性和方法,并通过实例说明了如何创建和使用类的对象。同时,阐述了JVM内存中对象的存储位置和特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Java面向对象学习的三条主线(第4-6章):

  1. Java类及类的成员:属性、方法、构造器;代码块、内部类
  2. 面向对象的三大特征:封装性、继承性、多态性、(抽象性)
  3. 其他关键字:this、super、static、final、abstract、interface、package、import 等

二、面向过程 vs 面向对象:

  1. 面向过程:强调的是功能行为,以函数为最小单位,考虑 "怎么做"
  2. 面向对象:强调的是具备了功能的对象,以类/对象为最小单位,考虑 "谁来做"

三、使用"面向对象分析方法"分析问题的思路和步骤:

  1. 根据问题需要,选择问题所针对的 “现实世界中的实体”
  2. 从实体中寻找解决问题相关的属性和功能,这些属性和功能就形成了 “概念世界中的类”
  3. 把抽象的实体用计算机语言进行描述,形成 “计算机世界中类的定义”
    (即,借助某种程序语言,把类构造成计算机能够识别和处理的数据结构)
  4. “类实例化成计算机世界中的对象”。对象是计算机世界中解决问题的最终工具

四、面向对象的两个要素:

  1. 类:对一类事物的描述,是抽象的、概念上的定义
  2. 对象:是实际存在的该类事物的每个个体,因而也称为实例(instance)
  • 面向对象程序设计的重点是 "类的设计"
  • 设计类,就是设计 “类的成员”

4.1 设计类,其实就是设计类的成员

4.2 类和对象的使用(面向对象思想落地的实现)

  1. 创建类,设计类的成员【主要工作】
  2. 创建类的对象
  3. 通过 “对象.属性” 和 “对象.方法” 调用对象的结构

代码实例测试:

//测试类
public class PersonTest {
	public static void main(String[] args) {
		//创建对象(实例化一个对象)
		Person p1 = new Person();
		
		//调用属性
		p1.name = "Tom";
		p1.isMale = true;
		
		System.out.println(p1.name);
		
		//调用方法
		p1.eat();
		p1.sleep();
		p1.talk("Chinese");
		
		//***********************************
		Person p2 = new Person();
		System.out.println(p2.name);
		
		//***********************************
		Person p3 = p1;
		System.out.println(p3.name);
		
		p3.age = 10;
		System.out.println(p1.age);
	}
}

//自定义的类:人类
class Person{
	//属性(成员变量,field,域、字段)
	String name;
	int age = 1;
	boolean isMale;
	
	//方法(成员方法,method,函数)
	public void eat(){
		System.out.println("人能吃饭");
	}
	
	public void sleep(){
		System.out.println("人能睡觉");
	}
	
	public void talk(String language){
		System.out.println("人能说话,使用的语言是:" + language);
	}
}

五、对象的内存解析

【对象的内存解析,类似于数组的内存解析(都是引用类型)】

5.1 JVM内存详细图

在这里插入图片描述
【目前只关注圈起来的三部分;其中主要关注:虚拟机栈(Stack)、堆(Heap)】

  1. 虚拟机栈:存储局部变量
  2. 堆:存放对象实例
  3. 方法区:类信息、常量、静态变量

5.2 对象的内存解析

在这里插入图片描述
【同一个类,实例化出来的多个对象,各自拥有一套成员(非static的),彼此之间互不干扰,(即,修改了对象a1的属性,不会导致对象a2的属性被修改)】

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值