面相对象的成员介绍

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

相关文章

MybatisPlus service接口功能介绍

《MybatisPlusservice接口功能介绍》:本文主要介绍MybatisPlusservice接口功能介绍,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友... 目录Service接口基本用法进阶用法总结:Lambda方法Service接口基本用法MyBATisP

MySQL JSON 查询中的对象与数组技巧及查询示例

《MySQLJSON查询中的对象与数组技巧及查询示例》MySQL中JSON对象和JSON数组查询的详细介绍及带有WHERE条件的查询示例,本文给大家介绍的非常详细,mysqljson查询示例相关知... 目录jsON 对象查询1. JSON_CONTAINS2. JSON_EXTRACT3. JSON_TA

C#之List集合去重复对象的实现方法

《C#之List集合去重复对象的实现方法》:本文主要介绍C#之List集合去重复对象的实现方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C# List集合去重复对象方法1、测试数据2、测试数据3、知识点补充总结C# List集合去重复对象方法1、测试数据

MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)

《MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)》掌握多表联查(INNERJOIN,LEFTJOIN,RIGHTJOIN,FULLJOIN)和子查询(标量、列、行、表子查询、相关/非相关、... 目录第一部分:多表联查 (JOIN Operations)1. 连接的类型 (JOIN Types)

java中BigDecimal里面的subtract函数介绍及实现方法

《java中BigDecimal里面的subtract函数介绍及实现方法》在Java中实现减法操作需要根据数据类型选择不同方法,主要分为数值型减法和字符串减法两种场景,本文给大家介绍java中BigD... 目录Java中BigDecimal里面的subtract函数的意思?一、数值型减法(高精度计算)1.

Spring中管理bean对象的方式(专业级说明)

《Spring中管理bean对象的方式(专业级说明)》在Spring框架中,Bean的管理是核心功能,主要通过IoC(控制反转)容器实现,下面给大家介绍Spring中管理bean对象的方式,感兴趣的朋... 目录1.Bean的声明与注册1.1 基于XML配置1.2 基于注解(主流方式)1.3 基于Java

C++/类与对象/默认成员函数@构造函数的用法

《C++/类与对象/默认成员函数@构造函数的用法》:本文主要介绍C++/类与对象/默认成员函数@构造函数的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录名词概念默认成员函数构造函数概念函数特征显示构造函数隐式构造函数总结名词概念默认构造函数:不用传参就可以

Pytorch介绍与安装过程

《Pytorch介绍与安装过程》PyTorch因其直观的设计、卓越的灵活性以及强大的动态计算图功能,迅速在学术界和工业界获得了广泛认可,成为当前深度学习研究和开发的主流工具之一,本文给大家介绍Pyto... 目录1、Pytorch介绍1.1、核心理念1.2、核心组件与功能1.3、适用场景与优势总结1.4、优

C++类和对象之默认成员函数的使用解读

《C++类和对象之默认成员函数的使用解读》:本文主要介绍C++类和对象之默认成员函数的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、默认成员函数有哪些二、各默认成员函数详解默认构造函数析构函数拷贝构造函数拷贝赋值运算符三、默认成员函数的注意事项总结一

Java实现本地缓存的常用方案介绍

《Java实现本地缓存的常用方案介绍》本地缓存的代表技术主要有HashMap,GuavaCache,Caffeine和Encahche,这篇文章主要来和大家聊聊java利用这些技术分别实现本地缓存的方... 目录本地缓存实现方式HashMapConcurrentHashMapGuava CacheCaffe