面相对象的成员介绍

2024-09-02 03:52
文章标签 介绍 对象 成员 面相

本文主要是介绍面相对象的成员介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

2.面相对象的成员 -> 类:

a.类的定义:

  • 1.类是对公共特点的抽象,其中包含了很多成员,如属性(成员变量 )、方法、构造器等.要想很好的定义类,就必须要好好的了解这些类的成员
    在这里插入图片描述

b.访问修饰符

  • 控制属性的访问范围 有四种访问修饰符 public, proctected, 默认, private
  • 属性的定义类型可以为任意类型,包含基本类型或引用类型
  • 属性如果不赋值,有默认值,规则和数组一致。具体说: int 0,short 0, byte 0, long 0, float 0.0,double 0.0,char, boolean false,String null

c.类用处:

  • 1.对类进行实例化就产生了对象
  • 2.创建对象 = 类的实例化 = 实例化类
    在这里插入图片描述

d.类成员介绍:

  • 1.类的常见的成员有:属性和行为
  • 2.类的其他成员:
    • 构造器
    • 代码快
    • 内部类
d1.类的成员->属性:
  • 1.属 性:对应类中的成员变量 或者叫:field;或者叫:域,字段
    在这里插入图片描述
d2.类的成员->方法:
  • 1.对应类中的成员方法 或者叫:函数;或者叫:method
    在这里插入图片描述

3.面相对象的成员 -> 对象:

对象哪来的??是对类实例化所产生的

a.对象的创建与使用:

在这里插入图片描述


b.代码举例:

  • 1.编码实现创建对象及属性的调用:
// Object01.java 
package com.jianqun.package01;
import java.util.function.IntBinaryOperator;
/*** @author jianqun* @email:1033586391@qq.com* @creat 2022-01-31-16:11*/
public class Object01 {public static void main(String[] args) {//实例化一只猫;即造出一只实实在在的猫来//把创建的第一支猫赋给cat1,就是这个猫的名字叫cat1Cat cat1 = new Cat();cat1.name = "小白";cat1.color = "白色";cat1.age = 3;//创建第二支猫Cat cat2 = new Cat();cat2.name = "小黑";cat2.color = "黑色";cat2.age = 30;System.out.println("第一支猫" + cat1.name + cat1.color);}
}class Cat{/*** 猫的属性*/String name;String color;int age;/*** 猫的行为*/
}
  • 2.对象创建说明: new Cat()代表的才是真正的对象,cat只是代表的对象名字,或者说叫对象的引用
//直接创建
Cat cat;//先声明对象cat
cat = new Cat();//再创建对象cat
//直接创建对象
Cat cat = new Cat();

c.类与对象的区别和联系

  • 1.通过上面的代码可以看出:类是抽象的,是代表一类事务,比如人类,猫类…是一种数据类型
  • 2.对象是具体的,实际的,代表一个具体事务,即是实例
  • 3.类是对象的模板,对象是类的一个个的个体,对应着实例
  • 4.如果创建了一个类的多个对象,对于类中定义的属性,每个对象都拥有各自的一套副本,且互不干扰(非static类型的属性
    在这里插入图片描述

d.匿名对象介绍:

  • 1.匿名对象就是:我们创建的对象没有赋给一个变量名,而直接调用这个对象的方法。这样的对象叫做匿名对象,如:new Person().shout();
  • 2.匿名对象智能调用一次
  • 3.使用情况 :
    • 如果对一个对象只需要进行一次方法调用,那么就可以使用匿名对象
    • 我们经常将匿名对象作为实参传递给一个方法调用
package com.jianqun.day08;
public class InstanceTest {public static void main(String[] args) {//创建Phone对象Phone phone = new Phone();System.out.println(phone);//对象调方法phone.sendEmail();phone.playGame();//匿名对象使用举例1:new Phone().price = 20000;new Phone().showPrice();//0.0new Phone().playGame();//打游戏.....//匿名对象使用举例2:PhoneMall phoneMall = new PhoneMall();phoneMall.show(new Phone());//发送邮件.....}
}class PhoneMall{public void show(Phone phone){phone.sendEmail();}
}class Phone{double price;//价格public void sendEmail(){System.out.println("发送邮件.....");}public void playGame(){System.out.println("打游戏.....");}public void showPrice(){System.out.println("手机价格::" + price);}
}

d.对象的内存解析:

d1.JVM内存结构简介:
  • 1.堆(Heap)
    • 此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都在这里分配内存
    • 这一点在Java虚拟机规范中的描述是:所有的对象实例(Cat cat)以及数组都要在堆上分配
  • 2.栈(Stack)
    • 通常所说的栈(Stack)是指虚拟机栈
    • 虚拟机栈用于存储局部变量表、操作数栈等。
    • 局部变量表存放了编译期可知长度的各种基本数据类型(boolean、byte、char 、 short 、 int 、 float 、 long 、double)、对象引用(reference类型,它不等同于对象本身,是对象在堆内存的首地址), 方法执行完,自动释放。
  • 3.方法区(Method Area)
    • 方法区(Method Area)用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。
      在这里插入图片描述
d2.案例1:分析对象创建过程:

在这里插入图片描述
在这里插入图片描述

d3.案例2:创建单个对象的内存解析:

以下分析忽略了main方法在栈中的存储,对对象中的属性做了进一步的分析

在这里插入图片描述
在这里插入图片描述

d4.案例3:一个类的多个对象的内存解析:
  • 1.如果我们创建了一个类的多个对象,则每个对象都独立的拥有一套属性(非static),也就是说,我们修改一个对象的属性a,不会影响另一个对象的属性a的值
    在这里插入图片描述
    在这里插入图片描述
  • 2.如下分析暂时忽略了jvm中的方法区
    在这里插入图片描述
d5.案例3:对象数组的内存解析:

在这里插入图片描述


这篇关于面相对象的成员介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1128915

相关文章

Java中HashMap的用法详细介绍

《Java中HashMap的用法详细介绍》JavaHashMap是一种高效的数据结构,用于存储键值对,它是基于哈希表实现的,提供快速的插入、删除和查找操作,:本文主要介绍Java中HashMap... 目录一.HashMap1.基本概念2.底层数据结构:3.HashCode和equals方法为什么重写Has

使用Java读取本地文件并转换为MultipartFile对象的方法

《使用Java读取本地文件并转换为MultipartFile对象的方法》在许多JavaWeb应用中,我们经常会遇到将本地文件上传至服务器或其他系统的需求,在这种场景下,MultipartFile对象非... 目录1. 基本需求2. 自定义 MultipartFile 类3. 实现代码4. 代码解析5. 自定

Springboot项目构建时各种依赖详细介绍与依赖关系说明详解

《Springboot项目构建时各种依赖详细介绍与依赖关系说明详解》SpringBoot通过spring-boot-dependencies统一依赖版本管理,spring-boot-starter-w... 目录一、spring-boot-dependencies1.简介2. 内容概览3.核心内容结构4.

javaSE类和对象进阶用法举例详解

《javaSE类和对象进阶用法举例详解》JavaSE的面向对象编程是软件开发中的基石,它通过类和对象的概念,实现了代码的模块化、可复用性和灵活性,:本文主要介绍javaSE类和对象进阶用法的相关资... 目录前言一、封装1.访问限定符2.包2.1包的概念2.2导入包2.3自定义包2.4常见的包二、stati

setsid 命令工作原理和使用案例介绍

《setsid命令工作原理和使用案例介绍》setsid命令在Linux中创建独立会话,使进程脱离终端运行,适用于守护进程和后台任务,通过重定向输出和确保权限,可有效管理长时间运行的进程,本文给大家介... 目录setsid 命令介绍和使用案例基本介绍基本语法主要特点命令参数使用案例1. 在后台运行命令2.

MySQL常用字符串函数示例和场景介绍

《MySQL常用字符串函数示例和场景介绍》MySQL提供了丰富的字符串函数帮助我们高效地对字符串进行处理、转换和分析,本文我将全面且深入地介绍MySQL常用的字符串函数,并结合具体示例和场景,帮你熟练... 目录一、字符串函数概述1.1 字符串函数的作用1.2 字符串函数分类二、字符串长度与统计函数2.1

zookeeper端口说明及介绍

《zookeeper端口说明及介绍》:本文主要介绍zookeeper端口说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、zookeeper有三个端口(可以修改)aVNMqvZ二、3个端口的作用三、部署时注意总China编程结一、zookeeper有三个端口(可以

c++ 类成员变量默认初始值的实现

《c++类成员变量默认初始值的实现》本文主要介绍了c++类成员变量默认初始值,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录C++类成员变量初始化c++类的变量的初始化在C++中,如果使用类成员变量时未给定其初始值,那么它将被

Python实现对阿里云OSS对象存储的操作详解

《Python实现对阿里云OSS对象存储的操作详解》这篇文章主要为大家详细介绍了Python实现对阿里云OSS对象存储的操作相关知识,包括连接,上传,下载,列举等功能,感兴趣的小伙伴可以了解下... 目录一、直接使用代码二、详细使用1. 环境准备2. 初始化配置3. bucket配置创建4. 文件上传到os

Python中win32包的安装及常见用途介绍

《Python中win32包的安装及常见用途介绍》在Windows环境下,PythonWin32模块通常随Python安装包一起安装,:本文主要介绍Python中win32包的安装及常见用途的相关... 目录前言主要组件安装方法常见用途1. 操作Windows注册表2. 操作Windows服务3. 窗口操作