面向对象的特征:

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!的更多相关文章

  1. Java基础(2)面向对象和封装,对象的创建和使用、java对象的内存图

    1 类和对象 类:是一类事物的描述,抽象的.猫 对象:是一类事物的实例,具体的.某只猫 2 类的定义 成员变量和成员方法 //定义一个学生类 public class Student { //成员变量 ...

  2. 2017.10.23 Java 面向对象深入学习---final 关键字、static关键字、匿名对象等

    今日内容介绍 1.final 关键字 2.static 关键字 3.匿名对象 4.内部类 5.包的声明与访问 6.访问修饰符 7.代码块 第一节课 01(面向对象)final关键字概念.avi 02: ...

  3. [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示

    javascript面向对象编程方式,对于初学者来说,会比较难懂. 要学会面向对象以及使用面向对象编程,理解对象的创建在内存中的表示,至关重要. 首先,我们来一段简单的对象创建代码 var obj = ...

  4. JavaScript面向对象—对象的创建和操作

    JavaScript面向对象-对象的创建和操作 前言 虽然说在JavaScript编程语言中,函数是第一公民,但是JavaScript不仅支持函数式编程,也支持面向对象编程.JavaScript对象设 ...

  5. 《JavaScript高级程序设计》读书笔记--(4)对象的创建

    ECMAScript支持面向对象(OO)编程,但不使用类或者接口.对象可以在代码执行过程中创建或增强,因此具有动态性而非严格定义的实体.在没有类的情况下,可以采用下列模式创建对象. 对象的创建 工厂模 ...

  6. java类的初始化和对象的创建顺序

    学习java编程思想--类的初始化p146 类的加载顺序* 1加载器启动找到 xxx.class文件,通过extends关键字寻找基类,先加载基类* 2类初始化先初始化static成员变量和stati ...

  7. Emit学习(2) - IL - 对象的创建过程

    上一篇的介绍中, 并没有介绍到对象的创建过程, 这一篇主要就介绍一下, 对象的创建过程. 其实熟悉了IL语法之后, 完全可以用Reflector反编译代码去查看. 而且正因为有这个工具, 可以对照着R ...

  8. java --- 对象的创建过程

    java 对象创建的过程 存在了继承关系之后,对象创建过程如下: 1.分配空间.要注意的是,分配空间不光是分配子类的空间,子类对象中包含的父类对象所需要的空间,一样在这一步统一分配.在分配的空间的时候 ...

  9. 对象的创建过程(chapter5.7.3)

    总结一下对象的创建过程,假设有一个名为Dog的类: 1. 即使没有显示地使用static关键字,构造器实际上也是静态的方法,因此,当首次创建类型为Dog的对象时(构造器可以看成静态方法),或者Dog类 ...

随机推荐

  1. Python小白的发展之路之Python基础(一)

    Python基础部分1: 1.Python简介 2.Python 2 or 3,两者的主要区别 3.Python解释器 4.安装Python 5.第一个Python程序 Hello World 6.P ...

  2. 用 ElementTree 在 Python 中解析 XML

    用 ElementTree 在 Python 中解析 XML 原文: http://eli.thegreenplace.net/2012/03/15/processing-xml-in-python- ...

  3. 初步学习border-radius

    1.属性解析 border-radius是css3属性,他可以使div的角进行一定程度的弯曲. 比如说下面这个width和height的正方形div 经过设置border-radius之后四个角会出现 ...

  4. windows多线程编程

    进程共同实现某个任务或者共享计算机资源, 它们之间存在两种关系: 1.同步关系, 指为了完成任务的进程之间, 因为需要在某些位置协调它们的执行顺序而等待, 传递消息产生的制约关系. 2.互斥关系, 进 ...

  5. localStorage使用总结

    一.什么是localStorage.sessionStorage 在HTML5中,新加入了一个localStorage特性,这个特性主要是用来作为本地存储来使用的,解决了cookie存储空间不足的问题 ...

  6. 敏捷组织中PMO应遵循的准则

    敏捷改变了人们的工作方式,不仅仅是开发部门,而且还包括其它的部门,例如HR.财务以及PMO等.在大多数组织中,PMO是一个控制体.它指导项目团队的规范.模板以及流程.目前,大多数的IT组织都敏捷化了. ...

  7. vcf格式

    Variant Call Format(VCF)是一个用于存储基因序列突变信息的文本格式.表示单碱基突变, 插入/缺失, 拷贝数变异和结构变异等.BCF格式文件是VCF格式的二进制文件. CHROM ...

  8. QQ远程桌面的使用

    腾讯QQ怎样使用远程桌面: ---------------------- ----------------------

  9. C# 全角和半角转换以及判断的简单代码

    在C#中判断和转换全角半角的方法 1. 判断是否为全角半角 全角占用二个字节 半角占用一个字节 用string.length 和System.text.Encoding.Default.GetByte ...

  10. Codeforces Round #354 (Div. 2) ABCD

    Codeforces Round #354 (Div. 2) Problems     # Name     A Nicholas and Permutation standard input/out ...