zoukankan      html  css  js  c++  java
  • 面对对象与封装

    面对对象
    类和对象的理解
    类:1.类是用来描述事物
    2.类是抽象的
    3.类可以理解为一个模板,是属性和方法的集合
    4.java中用class来描述类
    5.类是java当中最基本的组成单位
    6.类就是用来组织代码(方法归类)封装数据(属性封装)的
    对象:1.对象一定是客观存在的,是具体的
    2.万事万物都是对象
    3.对象是在类的基础上创建的
    4.对象又称为实例/引用/变量
    类的定义:
    java中用class描述类
    成员变量表示就是事物的属性
    成员方法表示就是事物的行为
    格式
    [访问权限修饰符]class类名{
    成员变量
    成员方法
    }
    如何创建一个对象:类名 对象名=new 类名();
    如何访问一个对象:
    访问对象的属性:对象名.属性
    访问对象的方法:对象名.方法名()
    成员变量和局部变量的区别
    1.定义的位置不一样
    成员变量:定义在类体以内,方法体以外
    局部变量:方法的声明生(形参),或者方法体内
    2.内存的位置不一样
    成员变量:在堆区分配内存空间
    局部变量:在栈区分配内存空空
    3.初始值不一样
    成员变量:成员变量默认有初始值,系统会赋予如下初始值
    byte short int long 0
    float double 0.0
    boolean false
    char u0000
    引用类型 null
    局部变量:默认没有初始值
    4.生命周期不一样
    成员变量:随着对象的创建而创建,随着对象的销毁而销毁
    局部变量:随着方法的调用而创建,随着方法的销毁而销毁
    5.当成员变量和局部变量重名的时候,局部变量优先(就近原则)

    匿名对象:本质就是没有名字的对象
    特点:
    1.匿名对象没有名字
    2.匿名对象只能够调用一次
    3.由于匿名对象使用完毕之后立刻就成为垃圾对象,等待垃圾回收器在空闲的时候回收垃圾
    一般可以节约内存资源,在java中应用少,在android应用多
    也可以简化编程[参数传递]
    什么是垃圾对象?
    1.匿名对象
    2.对象被赋值为null
    3.对象所在的方法调用完毕
    4.当主方法调用完毕
    5.当对象被重新new
    封装
    private关键字:它本质是一个访问权限修饰符,用来放置外界访问成员变量
    封装步骤:1.给需要封装的成员加上访问权限修饰符(private)---防止外界直接通过,直接访问成员
    2.对外界提供公共的访问方法(set/get方法)---提供外界对内部成员的访问通道
    3.在读写方法中添加数据校验代码---可以对成员的访问提供数据控制(看需求可选择)
    为什么需要this关键字?
    -----当局部变量和成员变量重名的时候需要使用this
    this本质就是一个变量/地址/实例/引用,表示当前对象
    this理解
    1.创建任何一个对象,都会默认创建一个this变量指向同一个堆区的空间
    2.this的设计理念代表代词 我的 概念,只能够出现在类的内部
    3.this可以完全理解为一个引用,一个本类的实例,或者本类的对象
    4.默认访问内部类的成员变量或者成员方法,都会省略一个this
    5.this本身就代指当前对象,谁调用this本身就是谁
    构造方法:本质就是一个方法而已,只不过能够帮助我们初始化成员
    好处:1.能够快速初始化成员
    2.能够在堆区为对象分配空间
    格式:[访问权限修饰符] 方法名(参数列表){
    方法体;
    }
    特点:1.构造方法没有返回值,连void都没有
    2.构造方法的方法名必须和类名保持一致
    3.构造方法用来给成员快速初始化
    4.如果你没有书写无参构造方法,系统会默认帮我们编写一个无参构造方法
    5.如果你一旦编写了一个带参构造方法,就会覆盖系统写的无参构造方法
    6.养成一个好的习惯:书写每个类都必须显示定义无参构造方法
    无参构造方法的意义:
    1.为一些不需要外界传入的成员赋值,同时会在对象创建的时候初始化
    2.如果你一旦编写了一个带参构造方法,就会覆盖系统写的无参构造方法,当你再使用无参构造方法的时候会编译报错
    3.反射中大部分都是创建无参构造方法,很多框架都是利用反射,所以如果你不提供无参构造方法,很可能框架报错
    构造方法本质还是方法,可以方法重载

  • 相关阅读:
    asp.net 获取当前项目的根目录路径
    asp.net 中 UEditor 图片和附件上传失败的处理方法
    [LOJ#2331]「清华集训 2017」某位歌姬的故事
    [LOJ#2330]「清华集训 2017」榕树之心
    [LOJ#2329]「清华集训 2017」我的生命已如风中残烛
    [LOJ#2328]「清华集训 2017」避难所
    [LOJ#2327]「清华集训 2017」福若格斯
    [LOJ#2326]「清华集训 2017」简单数据结构
    [LOJ#2325]「清华集训 2017」小Y和恐怖的奴隶主
    [LOJ#2324]「清华集训 2017」小Y和二叉树
  • 原文地址:https://www.cnblogs.com/yhgn/p/10764732.html
Copyright © 2011-2022 走看看