JavaOOP思想及内存解析

前言

        面向对象最关键的两个词汇是类与对象,实质上可以将类看作对象的抽象,它定义了对象所具有的属性和方法。学习 Java 语言必须掌握类与对象,这样可以从深层次理解 Java 这种面向对象语言的幵发理念。因此,掌握类与对象是学习 Java 语言的基础,可以使开发人员更好、更快地掌握 Java 编程思想与编程方式。

一. 面向过程与面向对象

 1.1 面向过程(POP)与面向对象(OOP)

  • 二者都是一种思想,面向对象是相对于面向过程而言的。
  • 面向过程:强调的是功能行为,以函数为最小单位,考虑怎么做。
  • 面向对象:将功能封装进对象,强调具备了功能的对象,以类/对象为最小单位,考虑谁来做。
  • 面向对象更加强调用了人类在日常的思维逻辑中采用的思想方法与原则,如:抽象、分类、继承、聚合、多态等。

 1.2 面向对象的三大特征

  • 封装 (Encapsulation)
  • 继承 (inheritance)
  • 多态 (Polymorphism)

面向对象:Object Oriented Programming
面向过程:Procedure Oriented Programming

 1.3 理解面向过程与面向对象

举例:人把大象装进冰箱

在这里插入图片描述

	//面向过程
	1.打开冰箱
	2.把大象装进冰箱
	3.把冰箱门关注
	//面向对象{
		打开(冰箱){
			冰箱.开门();
		}
		操作(大象){
			大象.进入(冰箱);
		}
		关闭(冰箱){
			冰箱.关门();
		}
	}
	冰箱(){
		开们(){};
		关门(){};	
	}
	大象(){
		进入(冰箱){};	
	}

 1.4 面向对象的思想概念

  • 程序员从面向过程的执行者转化成了面向对象的指挥官

  • 面向对象分析方法分析问题的思路和步骤:

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

二. Java语言的基本元素:类和对象

 2.1 类(Class)和对象(Object)是面向对象的核心概念。

  • 类是对一类事物的描述,是抽象的、概念上的定义。
  • 对象是实际存在的该类事物的每个个体,因而也成为实例(instance)。

 2.2 类和对象的概念

在这里插入图片描述

  1. 可以理解为:类 = 抽象概念的人;对象 = 实实在在的某个人
  2. 面向对象程序设计的重点是类的设计
  3. 类的设计,其实就是类的成员的设计

 2.3 类的语法结构


修饰符 class 类名{
	属性声明;
	方法声明{}
}

 2.4 对象的语法结构

创建对象的语法:类名 对象名 = new 类名();
使用"对象名.属性名"的方式访问对象的属性
使用"对象名.方法名()"的方式访问对象的方法

 2.5 类和对象的使用

创建一个学生类

/**
*学生类
*/
public class Student{
	//属性
	String name;	//姓名
	int age;		//年龄
	double score;	//成绩
	//方法
	public void showInfo(){
		System.out.println("姓名:"+name);
		System.out.println("年龄:"+age);
		System.out.println("成绩:"+score);
	}
}

创建对象即调用学生类并使用

public class TestStudent{
	public static void main(String[] args){
		//创建对象
		Student stu = new Student();	//调用学生类	
		//初始化属性
		stu.name="学生";		//姓名
		stu.age=19;			//年龄
		stu.score=89.5;		//成绩
		//调用方法
		stu.showInfo();		//调用方法
	}
}

 2.6 数据类型的默认值

类型默认值
byte0
short0
int0
long0L
float0.0F
double0.0
char‘\u0000’
booleanfalse
引用数据类型null

三. 对象的内存解析

public class Person{
	int age;				//成员变量
	public void shout(){		//方法
		System.out.println("oh,my,god! I am "+age);
	}
}
public class TestPerson{
	public static void main(String[] args){
		//创建对象	
		Person p1 = new Person();
		Person p2 = new Person();
		p1.age=-30;	//初始化成员变量
		p1.shout();	//调用方法
		p2.shout();	
	}
}

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

自学之路←_←

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值