前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >第45节:Java当中的变量,面向对象

第45节:Java当中的变量,面向对象

作者头像
达达前端
发布2019-07-03 12:04:17
3910
发布2019-07-03 12:04:17
举报
文章被收录于专栏:达达前端达达前端

标题图

Java当中的变量

01

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

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

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

代码语言:javascript
复制
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中只加载一次。

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

代码语言:javascript
复制
基本类型: 0 / 0.0 / \u0000 / false
引用类型: null

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

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

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

面向对象

02

OOA, OOD, OOP

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

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

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

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

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

结语

  • 下面我将继续对 其他知识 深入讲解 ,有兴趣可以继续关注
  • 小礼物走一走 or 点赞
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.09.18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Java当中的变量
  • 01
  • 面向对象
  • 02
  • 结语
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档