java面与对象基础

java面与对象基础目录标题 一 面向对象思想 1 定义 2 核心特点 二 类与对象 1 基本概念 类 对象 2 对象内存解析 3 类的成员 成员变量 属性 field 字段 域 方法 函数 method 对象数组的使用 四 再谈方法

大家好,我是讯享网,很高兴认识大家。



目录标题

  • 一:面向对象思想
    • 1.定义:
    • 2.核心特点:
  • 二: 类与对象
    • 1.基本概念
      • ①类
      • ②对象:
    • 2.对象内存解析
    • 3. 类的成员
      • ①.成员变量( 属性 field(字段,域))
      • ② .方法(函数,method)
      • ③.对象数组的使用
  • 四:再谈方法:
    • 1.方法的重载
    • 2.可变个数形会的方法
    • 3.方法的值传递机制
    • 3.递归方法

一:面向对象思想

1.定义:

  1. 面向对象编程的两个核心概念:类(Class)、对象(Object)
  2. 面向过程编程(POP) vs 面向对象编程(OOP)

面向过程:
- 以为组织单位。
- 是一种“”,适合解决简单问题。扩展能力差、后期维护难度较大。

面向对象:
- 以为组织单位。每种事物都具备自己的和。
- 是一种“”,适合解决复杂问题。代码扩展性强、可维护性高。

即:人把大象装进冰箱

 
讯享网 

2.核心特点:

1.封装:将数据和操作数据的方法绑定在一起,隐藏对象的属性和实现细节。
2.继承:子类可以继承父类的特征和行为,实现代码复用。
3.多态:允许不同类的对象对同一消息做出响应。

二: 类与对象

1.基本概念

①类

A 定义:具有相同特征的事物的抽象描述,是抽象的、概念上的定义。
B 关键字:class。
C 创建类的语法:

讯享网

②对象:

A 定义:实际存在的该类事物的每个个体,是具体的,因而也称为实例,类的一个实例。
B 关键字:new 。
C 创建对象语法:

java面与对象基础

 

D 对象调用属性或方法

讯享网

图示:

在这里插入图片描述

2.对象内存解析

举例:

 

内存解析图:
在这里插入图片描述
解析:
:主要存放的是产生的局部变量(包括基本类型和对象引用)以及方法调用所需的其他信息。当方法执行完毕后,相应的栈帧及其包含的信息会被销毁,从而释放栈空间。(包括main方法,与你自定义的方法)

:凡是 new 出来的结构(对象、数组)都放在堆空间中。 对象的属性存放在堆空间中。

注意:

  • 创建一个类的多个对象(比如 p1、p2),则每个对象都拥有当前类的一套"副本"(即属性)。当通过一个对象修改其属性时,不会影响其它对象此属性的值。
  • 当声明一个新的变量使用现有的对象进行赋值时(比如 p3 = p1),此时并没有在堆空间中创建新的对象。而是两个变量共同指向了堆空间中同一个对象。当通过一个对象修改属性时,会影响另外一个对象对此属性的调
    用。

3. 类的成员

①.成员变量( 属性 field(字段,域))

A. 如何声明:

 

说明:
– 位置要求:必须在类中,方法外
– 修饰符 2
• 常用的权限修饰符有:private、缺省、protected、public
• 其他修饰符:static、final
– 数据类型
• 任何基本数据类型(如 int、Boolean) 或 任何引用数据类型。
– 成员变量名
• 属于标识符,符合命名规则和规范即可。
– 初始化值
• 根据情况,可以显式赋值;也可以不赋值,使用默认值

B.举例:

 

C.成员变量 vs 局部变量
在这里插入图片描述

  1. 相同点:
    变量声明的格式相同:数据类型 变量名 = 变量值
    变量都有其有效的作用域。出了作用域,就失效了。
    变量必须先声明,后赋值,再使用。
  2. 不同点:
    ①. 类中声明的位置的不同:

②. 在内存中分配的位置不同:

③. 生命周期:

④. 作用域:

⑤. 是否有默认值:

 
 

注意:对于方法的形参而言,在调用方法时,给此形参赋值即可。

② .方法(函数,method)

A. 定义:
方法是类或对象行为特征的抽象,用来完成某个功能操作。在某些语言中也称为函数或过程。
将功能封装为方法的目的是,可以实现代码重用,减少冗余,简化代码 。
Java 里的方法不能独立存在,所有的方法。

 

B.声明方法的语法格式

 

C.调用实例方法

  1. 方法调用语法格式:
 
  1. 举例:
 
  1. 注意:
    (1)必须先声明后使用,且方法必须定义在类的内部
    (2)调用一次就执行一次,不调用不行。
    (3)方法中可以调用类中的方法或属性,不可以在方法内部定义方法。
    4.关键字 return 的使用 :
    – 作用 1:结束一个方法
    – 作用 2:结束一个方法的同时,可以返回数据给方法的调用者

注意点:在 return 关键字的直接后面不能声明执行语句

③.对象数组的使用

A.定义:数组的元素可以是基本数据类型,也可以是引用数据类型。当元素是引用类型中的类时,我们称为对象数组。

B.例如:

定义类 Student,包含三个属性:学号 number(int),年级 state(int),成绩
score(int)。 创建 20 个学生对象,学号为 1 到 20,年级和成绩都由随机数确
定。
问题:打印出 3 年级(state 值为 3)的学生信息。
生成随机数:Math.random(),返回值类型 double;

 

C.注意:
对象数组,首先要创建数组对象本身,即确定数组的长度,然后再创建每一个
元素对象,如果不创建,数组的元素的,所以很容易出现空指
针异常 NullPointerException。

四:再谈方法:

1.方法的重载

B.特点:,只看参数列表,且参数列表必须不同。(参数个数或参数类型)。调用时,根据方法参数列表的不同来区别。

C.重载方法调用:JVM 通过方法的参数列表,调用匹配的方法。
– 先找个数、类型最匹配的
– 再找个数和类型可以兼容的,如果同时多个方法可以兼容将会报错

D.举例:

 

2.可变个数形会的方法

 

C.特点:

1.可变参数:方法参数部分指定类型的参数个数是可变多个:0 个,1 个或多个可变个数形参的方法与同名的方法之间,彼此构成重载
2.可变参数方法的使用与方法参数部分使用数组是一致的,二者不能同时声明,否则报错。
3.方法的参数部分有可变形参,需要放在形参声明的最后
4.在一个方法的形参中,最多只能声明一个可变个数的形参

D.例如:

 

3.方法的值传递机制

  1. 形参和实参
    形参:在方法时,方法名后面括号()中的变量称为形式参数,简称形参。
    实参:在方法时,方法名后面括号()中的的值/变量/表达式称
    为实际参数,简称实参。
  2. 参数传递机制:值传递
    Java 里方法的参数传递方式只有一种:值传递。 即将实际参数值的副本(复制品)传入方法内,而参数本身不受影响。
    形参是数据类型:将实参基本数据类型变量传递给形参
    形参是数据类型:将实参引用数据类型变量传递给形参.
  3. 举例
    1、形参是基本数据类型
 

内存解析:在这里插入图片描述

2、形参是引用数据类型

 

内存解析:
在这里插入图片描述

3.递归方法

 

说明:
递归方法包含了一种隐式的循环。
递归方法会重复执行某段代码,但这种重复执行无须循环控制。
递归一定要向,否则这种递归就变成了无穷递归,停不下来,类似于。最终发生栈内存溢出。
C.举例:

 

本节,我们主要讲述了Java的面向对象的基础知识点,后面我也会继续开坑的,旅途还在继续,来日方长!

小讯
上一篇 2024-12-28 15:29
下一篇 2024-12-25 11:55

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/12.html