zoukankan      html  css  js  c++  java
  • 面向对象(成员变量、局部变量、匿名对象、封装、构造代码块、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);
     
    第一行?-->因为初始化动作要先执行
  • 相关阅读:
    svn忽略不需要同步的文件夹或文件
    Redis 字符串(String)
    Redis 数据类型
    Linux下安装rabbitMQ
    Windows平台下Git服务器搭建
    Linux下安装redis
    JVM调优总结
    Tomcat优化配置
    通过profile 用maven命令打不同配置的变量包
    Log4j日志配置说明
  • 原文地址:https://www.cnblogs.com/aisi-liu/p/4133185.html
Copyright © 2011-2022 走看看