java基础知识整理 ---Day06面向对象

版权声明:希望大家喜欢,如果有误,欢迎指正~~~~ https://blog.csdn.net/weixin_44071260/article/details/85013802

一、编程语言的发展

机器语言

直接由计算机的指令组成,指令、数据、地
址都以“0”和“1”组成:可以被计算机直接识别并执行。

汇编语言

用容易理解和记忆的符号表示指令、数据以
及寄存器等,抽象层次很低,程序员需要考虑大量的机器细节。

高级语言

屏蔽了机器细节,提高了语言的抽象层次接
近于人的自然语言,60 年代出现的结构化编程语言剔除了结
构化数据和语句,数据和过程抽象等概念。

面向对象的语言

与以往的各种语言的根本不同是,它的设计出发点就是为了更能直接地描述问题域中客观存在的事物。语言的发展是朝着人类更容易理解的方向前进
OOP(Object Oritented Programming)面向对象编程,属于编程的一种通用的思想。OOP 使我们的开发变得不再那么复杂,并大大增加了程序的灵活性和扩展性。

二、 面向对象概述

面向对象的设计思想

面向对象的基本思想是,从现实世界中客观存在的事物出发来构造软件系统,并在系统的构造中尽可能运用人类的自然思维方式。
面向对象更加强调运用人类中日常的思维逻辑中经常采用的思想方法与原则,如抽象、分离、继承、聚合、多态等。

三、 对象和类的概念

对象用计算机语言对问题域中事物的描述,对象通过“属性(attribute)”和“方法(method)”。
类是用于描述同一类型的对象的一个抽象的概念,类中定义了这一类对象所具有的静态属性和动态属性。
类可以看成一类对象的模板,对象可以看成该类的一个具体实例。

类,说白了就是归类,就是对同种事物进行抽象,抽出“像”的部分,包含有关事务(对象)动作方式的信息,包括它的名称、属性、方法及所在的场景或联系。

四、 Java 与面向对象

对象是 Java 程序的核心,在 Java 程序中“万事万物皆对象”。
类是用来创建同一类型的“模板”,在一个类中定义了该类对象所具有的成员变量以及方法
JDK 提供了很多类供编程人员使用,编程人员也可以定义自己的类。
成员变量=属性 方法=功能
(1)Java 类的定义在这里插入图片描述
在这里插入图片描述

类的定义主要有两方面组成——成员变量和方法

(一)、声明成员变量的格式为:

访问修饰符 	修饰符 	类型 	属性名称 = 初始值 ;
public		static 	int		a		=10;		

1.访问修饰符:可以使用四种不同的访问修饰符中的一种,包括public(公共的)、protected(受保护的),无修饰符和 private(私有的)。public 访问修饰符表示属性可以从任何其它代码调用。private 表示属性只可以由该类中的其它方法来调用。

2.修饰符:是对属性特性的描述,例如:static、final 等等。

3.类型:属性的数据类型,可以是任意的类型。

4.属性名称:任何合法标识符

5.初始值:赋值给属性的初始值。如果不设置,那么会自动进行初始化,基本类型使用缺省值,对象类型自动初始化为 null。

(二)、声明方法的格式为;

访问修饰符 修饰符 返回值类型 方法名称 (参数列表)  {方法体}
public	static	void		run		(无)		{}

1.返回值类型:表示方法返回值的类型。如果方法不返回任何值,它必须声明为 void(空)。Java 技术对返回值是很严格的,例如,如果声明某方法返回一个int值,那么方法必须从所有可能的返回路径中返回一个int值(只能在等待返回该 int 值的上下文中被调用。)

2.方法名称:可以是任何合法标识符,并带有用已经使用的名称为基础的某些限制条件。

3.参数列表:允许将参数值传递到方法中。列举的元素由逗号分开,而每一个元素包含一个类型和一个标识符。在下面的方法中只有一个形式参数,用 int 类型和标识符 days 来声明:
public void test(int days){}

花括号内是方法体,即方法的具体语句序列

成员变量

成员变量可以使用 Java 语言中任何一种数据类型(包括基本类型和引用类型)
定义成员变量时可以对其初始化,如果不对其初始化,Java 使用默认的值对其初始化。
在这里插入图片描述
成员变量的作用范围为整个类体

Java 面向对象基本概念

Java 语言中除基本类型之外的变量类型都称为引用类型
Java 中的对象是通过引用对其操作的。
例如:
Dog dog;
dog = new Dog();
如何在内存中区分类和对象?
类是静态的概念,代码区对象是 new 出来的,位于堆内存,类的每个成员变量在不同的对象中都有不同的值(除了静态变量)而方法只有一份,执行的时候才占用内存。

对象的创建和使用

必须使用 new 关键字创建对象,new 做三件事:
①会在堆中为相应类型分配空间
②会调用相应的构造方法来初始化对象
③将在堆中开辟的空间的地址返回回来

使用对象(引用).成员变量来引用对象的成员变量。

在这里插入图片描述
引用JianLin对象的类型为int的hhhh成员变量
在这里插入图片描述

使用对象(引用).方法(参数列表)来调用对象的方法。

在这里插入图片描述
通过j…xiaoMiQian();来调用对象方法
在这里插入图片描述
同一类的每个对象有不同的成员变量存储空间。
同一类的每个对象共享该类的方法。

五、 方法(复习)

上面已经提过方法这里再巩固一下
Java 的方法类似于其他语言的函数,是一段用来完成特定功能的代码片段,声明格式:
[修饰符 1 修饰符 2….] 返回类型 方法名(形式参数列表)
{
Java 语句;。。。
}
形式参数:在方法被调用时用于接收外接输入的数据。
实参:调用方法时实际传给方法的数据
返回值:方法在执行完毕后返还给调用它的环境的数据
返回值类型:事先约定的返回值的数据类型,如无返回值,必须给出返回值类型 void
Java 语言中使用下述形式调用方法:对象名.方法名(实参列表)
实参的数量、数据类型和次序必须和所调用方法声明的形参列表匹配,return 语句终止方法的运行并指定要返回的数据类型
Java 中进行函数调用中传递参数时,遵循值传递的原则:
基本类型传递的是该数据值本身。引用类型传递的是对象的引用,而不是对象本身
TestMethod.java

六、 构造器(构造方法|构造函数)

在创建对象时(new),必会调用一个特殊的方法,这个方法是初始化对象信息的为 new 服务的。这个方法称为“构造器”在这里插入图片描述
使用 new + 构造方法创建一个新的对象。
构造函数是定义在 Java 类中的一个用来初始化对象的函数。
构造函数与类同名且没有返回值。
例如: Person 类的构造函数:
在这里插入图片描述
在这里插入图片描述
创建对象时,使用构造函数初始化对象的成员变量
在这里插入图片描述

构造方法的特点:

1) 名称必须和类名一致,与类名相同
2) 没有返回类型|void
3) 构造器可以存在 return,return 有选择的跳出构造器
4) 不能随便调用,和 new 在一起使用,其他时候不能调用
5) 修饰符不能为 final abstract static

作用:

初始化对象信息,不是用于创建对象的

空构造:

没有参数的构造器、无参构造
1) 一个类中,如果没有显示|手动 加入 任意构造器javac 编译后 自动加入空构造
2) 一旦加入构造器, javac 不会加入空构造器

方法的重载

方法的重载是指一个类中可以定义有相同的方法名,但参数不同的多个方法。调用时,会根据不同的参数列表选择对应的方法。
在这里插入图片描述
构造方法的重载与普通方法一样,构造方法也可以重载
例子如下:在这里插入图片描述

七、 引用与内存分析

内存分析

在这里插入图片描述

引用的特点:

1) 同一时刻一个一引用只能指向一个对象
2) 一个对象可以被多个引用所指向,其中一个对其进行更改,该对象的其他引用也可见该变化
3) Java 一切为值传递,引用拷贝地址
约定俗成的命名规则
类名的首字母大写
变量名和方法名的首字母小写
运用驼峰标识

总结:对象的创建和使用

必须使用 new 关键字创建对象
使用对象引用.成员变量来引用对象的成员变量
使用对象引用.方法(参数列表)来调用对象的方法
同一类的每个对象有不同的成员变量存储空间
同一类的每个对象共享该类的方法
非静态方法是针对每个对象进行调用

猜你喜欢

转载自blog.csdn.net/weixin_44071260/article/details/85013802