面向对象Part1对象的创建和Static!
面向对象的特征:
1)封装
2)继承
3)多台
4)抽象


创建的是什么类型的对象 变量的声明就是什么类型.
class Servant{
void xxx (){}
}
Servant s1 = new Servant();
s1.xxx()
创建的是Servant类型的对象, 变量s1就应当是Servant类型.
创建一个类>>>创建一个对象>>>调用对象的方法
内存表示:

new出来的对象放在堆里,每个堆里的对象有一个地址值,把地址值赋给栈空间里的变量. 栈空间的变量在调用的改变下再赋值给堆空间.



匿名对象使用: new Servant().name="A" 一次性对象.

学生缴费模型:数组的引用在堆栈里存放的元素是地址值而不是数值.
Constrctor(构造器): 例如 : student s1 = new student()
系统在编译文件会默认生成一个student(){}无参数的方法.
构造器必须和new一起使用. 构造器完成对象的初始化作.

在构造器中不需要使用return语句. 其实构造器是有返回值的,它返回的是当前创造对象的的引用.
类的前面有public 构造器也用public修饰.
自定义的构造器:

构造器可以重载: 只有参数列表不同.构造器的名称相同.
修饰符Static:

4)必须在所在类中调用.
static修饰的变量不属于对象属于类.
静态的static用类名去访问. Person.XXX(static修饰的变量)
内存分析:
将主方法中用到的类的字节码加载进方法区:
由于Static修饰的变量随着类的加载而加载,所以Static变量加载到内存中的方法区中.方法区才是大家共享的一块区域.

类成员:使用static修饰的成员.
实例成员:没有使用static修饰的成员.
局部变量属于它所定义的代码区域里面.局部变量不能用static修饰.static修饰决定于它属于类.
类成员只能访问类成员.实例成员只能访问实例成员.

实例成员不可通过类名调用.
在Static方法中只能调用static成员.
非Static方法可以访问Static成员.也可以访问实例成员.
没有static不能用类名调用. 得先创建一个对象再调用方法.
为什么Static方法中只能调用Static成员?
就好比你饿了,想吃馒头,然而没有馒头.因为没有new出来一个馒头.
Static是和类相关联. 非Static的实例变量是和对象关联.
先有Static后有实例变量. 如果想要在Static方法下面调用非Static变量.需要先new出来或者引用new好的.
面向对象Part1对象的创建和Static!的更多相关文章
- Java基础(2)面向对象和封装,对象的创建和使用、java对象的内存图
1 类和对象 类:是一类事物的描述,抽象的.猫 对象:是一类事物的实例,具体的.某只猫 2 类的定义 成员变量和成员方法 //定义一个学生类 public class Student { //成员变量 ...
- 2017.10.23 Java 面向对象深入学习---final 关键字、static关键字、匿名对象等
今日内容介绍 1.final 关键字 2.static 关键字 3.匿名对象 4.内部类 5.包的声明与访问 6.访问修饰符 7.代码块 第一节课 01(面向对象)final关键字概念.avi 02: ...
- [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
javascript面向对象编程方式,对于初学者来说,会比较难懂. 要学会面向对象以及使用面向对象编程,理解对象的创建在内存中的表示,至关重要. 首先,我们来一段简单的对象创建代码 var obj = ...
- JavaScript面向对象—对象的创建和操作
JavaScript面向对象-对象的创建和操作 前言 虽然说在JavaScript编程语言中,函数是第一公民,但是JavaScript不仅支持函数式编程,也支持面向对象编程.JavaScript对象设 ...
- 《JavaScript高级程序设计》读书笔记--(4)对象的创建
ECMAScript支持面向对象(OO)编程,但不使用类或者接口.对象可以在代码执行过程中创建或增强,因此具有动态性而非严格定义的实体.在没有类的情况下,可以采用下列模式创建对象. 对象的创建 工厂模 ...
- java类的初始化和对象的创建顺序
学习java编程思想--类的初始化p146 类的加载顺序* 1加载器启动找到 xxx.class文件,通过extends关键字寻找基类,先加载基类* 2类初始化先初始化static成员变量和stati ...
- Emit学习(2) - IL - 对象的创建过程
上一篇的介绍中, 并没有介绍到对象的创建过程, 这一篇主要就介绍一下, 对象的创建过程. 其实熟悉了IL语法之后, 完全可以用Reflector反编译代码去查看. 而且正因为有这个工具, 可以对照着R ...
- java --- 对象的创建过程
java 对象创建的过程 存在了继承关系之后,对象创建过程如下: 1.分配空间.要注意的是,分配空间不光是分配子类的空间,子类对象中包含的父类对象所需要的空间,一样在这一步统一分配.在分配的空间的时候 ...
- 对象的创建过程(chapter5.7.3)
总结一下对象的创建过程,假设有一个名为Dog的类: 1. 即使没有显示地使用static关键字,构造器实际上也是静态的方法,因此,当首次创建类型为Dog的对象时(构造器可以看成静态方法),或者Dog类 ...
随机推荐
- [LeetCode] Unique Paths II 不同的路径之二
Follow up for "Unique Paths": Now consider if some obstacles are added to the grids. How m ...
- 使用TortoiseGit对android studio工程进行代码版本控制
阅读下列文章时请保证你是否有以下工具: 1.Android Studio 2.TortoiseGit 和 msysGit 安卓工程版本控制哪些文件可以忽略 可以省略的文件如下: 目录 .gradle ...
- tomcat7下对HTTPS的部署配置
1.申请CA证书,可以在腾讯云或者阿里云申请到免费的CA,不过前提是,你要有太服务器和域名,并且解析过域名. 2.下载申请到的CA证书到本地,在tomcat7上进行相关配置. 3.Tomcat 证书部 ...
- Java中判断字符串是否为数字的五种方法
//方法一:用JAVA自带的函数 public static boolean isNumeric(String str){ for (int i = str.length();--i>=0;){ ...
- Codeforces 刷水记录
Codeforces-566F 题目大意:给出一个有序数列a,这个数列中每两个数,如果满足一个数能整除另一个数,则这两个数中间是有一条边的,现在有这样的图,求最大联通子图. 题解:并不需要把图搞出来, ...
- 在页面的el表达式是如何判断null的
<c:if test="${not empty message}"> <div id="message" class="alert ...
- PAT Basic Level 1001
大纲考察内容 数据存储结构:数组.链 基础算法:递归.排序.计算时间复杂度.空间复杂度.分析算法稳定性 1001.害死人不偿命的(3n+1)猜想 (15) https://www.patest.cn/ ...
- spring-mvc注解(mvc:annotation-driver,JSON,配置详解)
一.DefaultAnnotationHandlerMapping 和 AnnotationMethodHandlerAdapter 的使用已经过时! spring 3.1 开始我们应该用 Reque ...
- easyUI时间控件 使用
1,时间格式化,分隔符为 “—” // 日期格式化 function myformatter(date){ var y = date.getFullYear(); var m = date.g ...
- Table 表单
<style> table th { white-space: nowrap; } .chk { white-space: nowrap; } </style> <tab ...