第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 点赞
第45节:Java当中的变量,面向对象的更多相关文章
- 第55节:Java当中的IO流-时间api(下)-上
		Java当中的IO流(下)-上 日期和时间 日期类:java.util.Date 系统时间: long time = System.currentTimeMillis(); public class ... 
- 第54节:Java当中的IO流(中)
		Java当中的IO流(中) 删除目录 // 简书作者:达叔小生 import java.io.File; public class Demo{ public static void main(Stri ... 
- 第53节:Java当中的IO流(上)
		Java当中的IO流 在Java中,字符串string可以用来操作文本数据内容,字符串缓冲区是什么呢?其实就是个容器,也是用来存储很多的数据类型的字符串,基本数据类型包装类的出现可以用来解决字符串和基 ... 
- java当中成员变量和局部变量的区别
		1:成员变量定义在类中,整个类中都可以访问.2:局部变量定义在函数,语句,局部代码块中,只在所属的区域有效.3:成员变量存在于堆内存的对象中.4:局部变量存在于栈内存的方法中.5:成员变量随着对象的创 ... 
- 第48节:Java当中的集合框架
		Java当中的集合框架 01 在我们班里有50位同学,就有50位对象. // 简书作者:达叔小生 Student[] stus = new Student[20]; 结果来了一位插班生,该同学因为觉得 ... 
- 第47节:Java当中的基本类型包装类
		Java当中的基本类型包装类 01 基本数据类型对象的包装类 什么是基本数据类型对象包装类呢?就是把基本数据类型封装成对象,这样就可以提供更多的操作基本数值的功能了. 基本数据类型对象的包装类8个: ... 
- 第46节:Java当中的常量池
		Java当中的常量池 在Java虚拟机jvm中,内存分布为:虚拟机堆,程序计数器,本地方法栈,虚拟机栈,方法区. 程序计数器是jvm执行程序的流水线,是用来存放一些指令的,本地方法栈是jvm操作系统方 ... 
- 第44节:Java当中的JVM
		Java当中JVM 01 在使用控制面板时的实质: Hello.java使用javac,然后变成为Hello.class通过运行java这个命令,在类加载器中(含有加载,验证,准备,解析,初始化,使用 ... 
- 第51节:Java当中的集合框架Map
		简书作者:达叔小生 Java当中的集合框架Map 01 Map提供了三个集合视图: 键集 值集 键-值 映射集 public String getWeek(int num){ if(num<0 ... 
随机推荐
- itchat 报错 OSError: [WinError -2147221003] 找不到应用程序: 'QR.png'
			OSError: [WinError -2147221003] 找不到应用程序: 'QR.png' 原因: 缺少在windows 下相关处理方法 解决方法:找到你运行环境C:\Python36\L ... 
- Codeforces 524 解题报告
			打的很快乐的一次比赛hiahiahia, 才A掉4题rating就涨了100+ 距离比赛\(3\)天了, 由于博主实在太颓, 又补掉了\(E\)题, 到现在才发解题报告 A. 语法题, 读入输出就行了 ... 
- 杨其菊/常惠琢《面向对象程序设计(java)》第十一周学习总结
			<面向对象程序设计>第十一周学习总结 第一部分:理论知识 JAVA的集合框架 JAVA的集合框架实现对各种数据结构的封装,以降低对数据管理与处理的难度. 所谓框架就是一个类库的集合,框 ... 
- [精华][推荐]CAS SSO单点登录服务端客户端学习
			1.通过下载稳定版本的方式下载cas的相关源码包,如下: 直接选择4.2.1的稳定代码即可 2.我们项目中的版本版本使用maven apereo远程库去下载 通过远程maven库下载cas-serve ... 
- TwinStickShooter的一些问题
			TwinStickShooter模板应该是比较好的了解UE基本Pawn和Projectile的一个C++例子.以下是一些问题. 一.这个模板以纯C++编写,没有蓝图,所以第一步,我想测试下如何引用蓝图 ... 
- ELK日志系统使用说明
			数据探索 Elasticsearch具有强大的数据检索和分析同能,支持模糊.全文.过滤.管道等数据查询.对于日志型数据处理很有优势. 下图为KIbana的主页图,将逐步说明每一部分的功能: 依照图中的 ... 
- jhipster安装_Windows
			1:安装 Node.js lts版本的 https://nodejs.org/en/ 2:安装Yarn https://yarn.bootcss.com/docs/install.html 3:修改y ... 
- 《MySQL必知必会》官方提供的数据库和表
			数据用于配合<MySQL必知必会>(MySQL Crash Course)这本书使用,配套SQL文件也可在Ben Forta网站下载. Ben Forta网址:http://forta.c ... 
- 有return的情况下try catch finally的执行顺序(转)
			结论:1.不管有没有出现异常,finally块中代码都会执行:2.当try和catch中有return时,finally仍然会执行:3.finally是在return后面的表达式运算后执行的(此时并没 ... 
- 解决ORA-30036:无法按8扩展段(在还原表空间‘XXXX’中)
			在update一数据量很大的表时,提示“ORA-30036:无法按8扩展段” 度娘了下原因与解决办法: 1.查询了一下undo表空间的使用,发现已经超过了80% SELECT a.tablespa ... 
