zoukankan      html  css  js  c++  java
  • java面向对象

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

    一:定义的位置不同

    定义在类中的变量是成员变量

    定义在方法中或者{}语句里面的变量是局部变量

    二:在内存中的位置不同

    成员变量存储在堆内存的对象中

    局部变量存储在栈内存的方法中

    三:生命周期不同

    成员变量随着对象的出现而出现在堆中,随着对象的消失而从堆中消失(gc垃圾回收机制)

    局部变量随着方法的运行而出现在栈中,随着方法的弹栈而消失

    四:初始值不同

    成员变量因为在堆内存中,所有默认的初始化值

    局部变量没有默认的初始化值,必须手动的给其赋值才可以使用。

    封装:

    提高了代码的复用性。

    隐藏了实现细节,还要对外提供可以访问的方式。便于调用者的使用。这是核心之一,也可以理解为就是封装的概念。

    提高了安全性。

    private:添加后只能在本类中使用

    private int a; 

    this:加this区别局部变量与成员变量。

    谁调用方法,this就代表谁:

    boolean flag=p1.compare(p2)

    public boolean compare(p2){

    return  this.age== p2.age}

    继承:public class Son extends Father{}

    子类继承父类的属性和方法

    一个类只能有一个父类,多个类可以有一个父类

    一个类的父类,可以是别的类的子类

    使用super代表其父类

    方法重写:

    属性,子类中使用与同名的变量时,优先使用子类中的。

    方法重写,当一个类是另一个类中的一种时,可以继承属性与功能。

    如果父类具备的功能内容需要子类特殊定义时,进行方法重写。

    使用super.xxxx()代表父类

    public void show(){
    super.show();
    System.out.println("显示aaa");
    System.out.println("显示bbb");
    }

  • 相关阅读:
    JavaScript中的事件
    JavaScript中的String
    和Java相关的一些好文章(不定期更新)
    大端序小端序
    C语言中const的正确用法
    skynet源码分析之网络层——Lua层介绍
    skynet源码分析之网络层——底层介绍
    skynet源码分析之定时器skynet_timer.c
    skynet源码分析之lua层消息处理
    skynet源码分析之snlua服务的启动流程(二)
  • 原文地址:https://www.cnblogs.com/god3064371/p/11525593.html
Copyright © 2011-2022 走看看