zoukankan      html  css  js  c++  java
  • 第45节:Java当中的变量,面向对象

    标题图

    Java当中的变量

    01

    Java当中的实例变量和类变量

    什么是实例变量和类变量呢?

    实例变量为没有用static修饰符修饰的变量,而类变量为用static修饰符修饰的变量。

    public class Hello{
     // 私有的静态变量 name
     private static name = "dashu";
     // 私有变量 age
     private int age = 17;
     // 无参构造方法
     public Hello(){
      this.age = 18;
     }
     public static void main(String[] args){
      // 实例化对象 在堆内存中
      new Hello();
     }
    }
    

    程序运行过程:Hello.java变成Hello.class,通过类加载器,加载到Java虚拟机中的方法区中,在方法区中,进行加载,验证,准备,解析,初始化。

    验证,class文件的版本是否能兼容当前的Java虚拟机版本,然后class文件要满足虚拟机的规范。

    准备,需要准备什么呢?就是要进行类成员的初始化为初始值,其中为final修饰的类变量除外,final变量就直接初始化为变量值,而类成员不一样。

    解析,什么是解析呢?就是把符号引用解析为直接引用,就是我们变量xxx,这种代表变为直接引用,什么是直接引用呢?就是内存地址,如我们常见的xxx0203r0e,这种。

    初始化(将类变量的值设置为初始值),把关于static修饰的变量或者是static静态代码块按照顺序组成构造器进行初始化变量。static修饰的方法无法访问非static的实例哦~

    初始值为要进行类成员的初始化为初始值为准备阶段,初始值为jvm中默认的值。

    变量为成员变量和局部变量

    成员变量在类中定义,有实例变量和类变量,实例变量是没有static修饰的(属于实例),而类变量是有static的(属于类本身)。

    局部变量有在方法里的局部变量,作用域在该方法内有效;代码块中的局部变量,就只是在代码块中有效;还有形参,参可别不记得了,也是变量,在整个方法内有效。

    实例变量,是在创建实例时,实例变量就存在,被销毁就不存在,类变量是,有类,类变量就存在,类变量在jvm中只加载一次。

    在系统中会为成员变量进行默认的初始化,初始化两种,一种为基本类型,一种为引用类型。

    基本类型: 0 / 0.0 / u0000 / false
    引用类型: null
    

    局部变量是在方法栈中。局部变量是由程序员赋值,系统不会默认给局部变量进行初始化的。

    成员变量,是系统有给予默认的初始化值,在类方法外,在堆内存中,是随着对象的创建而存在,随着对象的消失而消失的。

    局部变量,是没有初始化的值,在定义的时候必须要赋予初始值的,在方法中,在堆内存中。

    面向对象

    02

    OOA, OOD, OOP

    OOA为面向对象分析
    OOD为面向对象设计
    OOP为面向对象编程

    面向对象是对象之间的交互
    面向过程是注重数据的流向

    Java中的三大特性为封装,继承,多态

    面向对象,首先要进行面向对象分析,分析有多少个对象,然后进行面向对象设计,设计出对象含有的函数和属性等。

    往后余生,唯独有你
    简书作者:达叔小生
    90后帅气小伙,良好的开发习惯;独立思考的能力;主动并且善于沟通
    简书博客: https://www.jianshu.com/u/c785ece603d1

    结语

    • 下面我将继续对 其他知识 深入讲解 ,有兴趣可以继续关注
    • 小礼物走一走 or 点赞
  • 相关阅读:
    ElasticSearch——分页查询
    Canal——写入到ES中数据错乱
    HBase管理与监控——WebUI
    '$.browser.msie' 为空或不是对象
    input file 获取不到Request.Files 解决办法
    .NET读取服务器或本地文件
    .NET将服务器文件导出
    .Net 中HashTable,HashMap 和 Dictionary<key,value> 和List<T>和DataTable的比较
    JavaScript跨域调用基于JSON的RESTful API
    WCF项目问题2-无法激活服务,因为它需要 ASP.NET 兼容性。没有未此应用程序启用 ASP.NET 兼容性。请在 web.config 中启用 ASP.NET 兼容性,或将 AspNetCompatibilityRequirementsAttribute.AspNetCompatibilityRequirementsMode 属性设置为 Required 以外的值。
  • 原文地址:https://www.cnblogs.com/dashucoding/p/9673036.html
Copyright © 2011-2022 走看看