面向对象的特征:

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. Java正则表达式入门——转自RUNOOB.COM

    Java 正则表达式 正则表达式定义了字符串的模式. 正则表达式可以用来搜索.编辑或处理文本. 正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别. Java正则表达式和Perl的是最为相似 ...

  2. 浏览器控制台命令调试——console

    控制台命令调试时通过浏览器开发工具中的控制台命令嵌入到JavaScript中,输出特定的信息或日志,从而达到调试的目的. 我们常用的Chrome和FireFox,都可以通过F12来打开开发工具. 下面 ...

  3. laravel下的数据序列化

    $data=$this->user->get(); //is obj $data=(string)$data; //is string $data=$data->toArray(); ...

  4. jquery版滑块导航栏

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <script src ...

  5. 【IT】公司FTP服务器使用说明

    FTP服务器的作用:----------------------------------------------1.员工个人或者部门资料临时备份(而不是永久归档): 2.部门或员工间交换巨大资料: 3 ...

  6. svn报错cleanup failed–previous operation has not finished; run cleanup if it was interrupted的解决办法

    今天在svn提交的时候它卡顿了一下,我以为已经提交完了,就按了一下,结果就再也恢复不了,也继续不了了... 报错 cleanup failed–previous operation has not f ...

  7. Puzzle 面向服务/切面(AOP/IOC)开发框架 For .Net

    Puzzle 面向服务/切面AOP开发框架 For .Net AOP主要实现的目的是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效 ...

  8. 【poj3744】 Scout YYF I

    http://poj.org/problem?id=3744 (题目链接) 题意 给出n个雷,分别在 a[1]...a[n] ,走一步概率为 p ,走两步概率为 1-p ,一开始在 1 号位置,问安全 ...

  9. php 使用函数中遇到的坑之----list

    1. list 把数组中的值赋给一些变量 <?php $info = array('coffee', 'brown', 'caffeine'); // 列出所有变量 list($drink, $ ...

  10. C#委托

    1.什么是委托: 委托是一个类型安全的对象,它指向程序中另一个以后会被调用的方法(或多个方法).它类似C语言里的函数指针,但它是类型安全的. 委托类型包含3个重要的信息: 它所调用的方法的名称 该方法 ...