• 面向对象(成员变量、局部变量、匿名对象、封装、构造代码块、this关键字)


    ------------------------------------------------------------
    成员变量和局部变量
    作用域:成员变量作用于整个类中,局部变量作用于函数,或语句中
    内存:成员变量存储在堆内存,局部变量存储在栈内存
     
    --------------------------------------------------------------------------------------------------
    匿名对象
    new Car();
    如下图,匿名new了3个匿名对象,但实际上3个对象的关系是不相关的
    new一个,就在栈内存中开辟一个内存空间
    当new第二个的时候,第一个就变成了垃圾
    匿名对象的使用方式:
    1.调用对象的方法,且只调用一次的时候;
    2.作为实际参数
    如果在上面的例子中,直接show(new Car());则在栈内存中开辟的空间如图
    当show方法执行结束后,show在栈内存的空间将会被回收,此时,堆内存中new的空间没有了指向,就变成了垃圾。
    ----------------------------------------------------------------------------------------------------
    封装
    将age的权限设为private,
    new出来的对象就不能直接访问age了,
    必须通过类中的方法set/getage()来访问
    ----------------------------------------------------------------------------------------------------
    构造代码块
    对象已建立就会运行
    目的:给所有对象进行统一初始化,
    而构造函数是给不同的对象分别初始化的
     
    构造代码块中定义的是不同对象共性的初始化内容
    -------------------------------------------------------------------------------------------------
    this关键字
    this到底指代什么
    this指代的是当前的对象,每次new一个对象,就代表那个new出来的对象
    如: Person    p = new Person (“lisi”);
    则,构造方法中的this关键字则指代 p,
    this.name = name --> p.name = name
    ----------------------------------------------------------------------------
    构造函数间调用,要用this关键字
    如:按常理调用person(String),在Person(String,age)里直接写Person(name)即可,
    但是,由于是调用构造函数,所以要这样:this(name);
     
    第一行?-->因为初始化动作要先执行
  • 相关阅读:
    [转] STM32 FSMC学习笔记
    【转】嵌入式系统 Boot Loader 技术内幕
    mini2440 使用 JLink V8 直接烧写 Nor flash
    S3C6410移植uboot(一)
    2440的RTC时钟
    关闭2440 屏幕背光
    基于十级流水线的开立方根算法
    Visual Studio 2008配置SystemC开发环境
    Linux C 中字符串化操作符#
    linux 中 timeval结构体
  • 原文地址:https://www.cnblogs.com/aisi-liu/p/4133185.html
Copyright © 2020-2023  润新知