美文网首页
Day11_面向对象

Day11_面向对象

作者: 蹦蹦跶跶的起床啊 | 来源:发表于2020-02-21 15:22 被阅读0次

面向对象

面向对象概述

面向对象思想总结:
1.面向过程:当要实现一个功能时,需要亲力亲为,处理每个细节
2.面向对象:当要实现一个功能时,不关心具体的实现步骤,只关心结果,找一个具有该功能的类,帮我们做事
3.面向对象的思想
(1)面向对象是基于面向过程的编程思想.
(2)面向过程:强调的是每一个功能的步骤
(3)面向对象:强调的是对象,然后由对象去调用功能
面向对象
的语言中,包含了三大基本特征,即封装、继承和多态。

类和对象

  • 类:
    是一组相关属性和行为的集合。可以看成是一类事物的模板,使用事物的属性特征和行为特征来描述该类事物。
  • 对象:
    是一类事物的具体体现。对象是类的一个实例,必然具备该类事物的属性和行为。

类和对象的关系

  • 类:类是对现实生活中一类具有共同属性和行为的事物的抽象
    -- 类是对一类事物的描述,是抽象的。
  • 对象:是能够看得到摸的着的真实存在的实体
    -- 对象是一类事物的实例,是具体的。
  • 简单理解:类是对事物的一种描述,对象则为具体存在的事物
    -- 类是对象的模板,对象是类的实体。

类的定义和对象的创建和使用

类的定义

  • java类中分为两类
  1. 成员变量(属性,名词):
    姓名:
    性别:
  2. 成员方法(行为,动词):
    吃饭:
    睡觉:
  • 格式
    public class ClassName {
    //成员变量
    //成员方法
    }
    注意:
    1.成员变量: 和之前所学的变量定义一样,只是位置放在类中,方法外. 之前方法内的变量叫做局部变量.
    2.成员方法: 和之前定义方法格式相同,去掉static关键字.
    3.一个类中的成员变量和成员方法是无法直接使用的, 只是对象的一个模版. 需要创建一个对象,才能够继续使用

类和对象的使用

  • 类是一种引用数据类型.
    使用步骤
    1.导包(找到要使用的类)在同一个包内, 不用导包
    java.long这个包底下的东西不用导包,可以直接使用
    格式: import xxx.xxx.类名;
    2.创建对象:
    数组对象的创建
    数据类型[] 数组名称 = new 数据类型[]
    int[] arr =new int[];
    类的对象创建:
    类名 对象名 = new 类名();
    3.对象的使用
    (1) 对象名称: 对象在内存空间的地址值
    (2)成员变量的使用格式:
    对象名称.成员变量名称

注意:
对象的成员变量有默认初始值
数据类型 默认值
基本类型
整数(byte,short,int,long) 0
浮点数(float,double) 0.0
字符(char) '\u0000'(空白字符)
布尔(boolean) false
引用类型
数组,类,接口 null

对象的内存图解

  • 方法区, 存储的是需要运行的.class文件 每个类都占有一定的空间, 同时有成员变量和成员方法占用的空间. 但是成员方法当真正需要被运行的时候, 将复制到栈内存中运行

  • 堆中保存的是所有new出来的东西 , 创建的对象占有一定的内存空间, 具有成员变量(具有默认值)和成员方法地址的空间. 这里的成员方法存储的是地址.

  • 栈, 所有运行方法和局部变量的存储. 当调用成员方法的时候, 栈内存中有定义的变量存储对象的地址, 找到堆内存. 然后找对堆内存中成员方法的地址值. 将方法区内的成员方法运行到栈内存中
    一个对象,调用一个方法内存图



两个对象,调用同一方法内存图



成员变量和局部变量的区别

  • 在类中的位置不同 [重点]
    成员变量:类中,方法外
    局部变量:方法中或者方法声明上(形式参数)
  • 作用范围不一样 [重点]
    成员变量:类中
    局部变量:方法中
  • 初始化值的不同 [重点][重点]
    成员变量:有默认值
    局部变量:没有默认值。必须先定义,赋值,最后使用
  • 在内存中的位置不同 了解
    成员变量:堆内存
    局部变量:栈内存
  • 生命周期不同 了解
    成员变量:随着对象的创建而存在,随着对象的消失而消失
    局部变量:随着方法的调用而存在,随着方法的调用完毕而消失

相关文章

  • Day11_面向对象

    面向对象 面向对象概述 面向对象思想总结:1.面向过程:当要实现一个功能时,需要亲力亲为,处理每个细节2.面向对象...

  • day11_面向对象_容器

    其中,Collection中的List和set和Map中的HashMap是比较常用的 JAVA容器类类库的作用是保...

  • day11_面向对象_多线程

    线程的定义 线程的意义 并行和并发的区别 并行:逻辑层面同时发生,指在一定时间内同时运行多个程序并发:物理层面同时...

  • PHP全栈学习笔记8

    面向对象的基本概念,面向对象编程,oop,面向对象,面向对象的分析,面向对象的设计,面向对象的编程,什么是类。 类...

  • PHP全栈学习笔记8

    面向对象的基本概念,面向对象编程,oop,面向对象,面向对象的分析,面向对象的设计,面向对象的编程,什么是类。 类...

  • 总结.Net基础知识——献给即将入坑的同行们(一期)

    什么是面向对象 面向对象OO = 面向对象的分析OOA + 面向对象的设计OOD + 面向对象的编程OOP; 通俗...

  • 面向对象基础

    面向对象编程包括: 面向对象的分析(OOA) 面向对象的设计(OOD) 面向对象的编程实现(OOP) 面向对象思想...

  • 20-OOP类与对象

    面向对象 Object Oriented 学习面向对象:XXOO 面向对象的学习: 面向过程和面向对象的区别: 面...

  • JavaScript面向对象核心知识归纳

    面向对象 概念 面向对象就是使用对象。面向对象开发就是使用对象开发。 面向过程就是用过程的方式进行开发。面向对象是...

  • 面向对象(未完成)

    面向对象 标签(空格分隔): 面向对象 第一章:面向对象(上) 什么叫面向对象 面向过程、面向对象、两者区别 构造...

网友评论

      本文标题:Day11_面向对象

      本文链接:https://www.haomeiwen.com/subject/vmbqqhtx.html