面向对象Part1对象的创建和Static!

面向对象的特征:

1)封装

2)继承

3)多台

4)抽象

面向对象Part1对象的创建和Static!

面向对象Part1对象的创建和Static!

创建的是什么类型的对象 变量的声明就是什么类型.

class Servant{

void xxx (){}

}

Servant s1 = new Servant();

s1.xxx()

创建的是Servant类型的对象,  变量s1就应当是Servant类型.

创建一个类>>>创建一个对象>>>调用对象的方法

内存表示:

面向对象Part1对象的创建和Static!

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

面向对象Part1对象的创建和Static!

面向对象Part1对象的创建和Static!

面向对象Part1对象的创建和Static!

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

面向对象Part1对象的创建和Static!

学生缴费模型:数组的引用在堆栈里存放的元素是地址值而不是数值.

Constrctor(构造器):   例如  :  student  s1 = new student()

系统在编译文件会默认生成一个student(){}无参数的方法.

构造器必须和new一起使用.    构造器完成对象的初始化作.

面向对象Part1对象的创建和Static!

在构造器中不需要使用return语句.  其实构造器是有返回值的,它返回的是当前创造对象的的引用.

类的前面有public    构造器也用public修饰.

自定义的构造器:

面向对象Part1对象的创建和Static!

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

修饰符Static:

面向对象Part1对象的创建和Static!

面向对象Part1对象的创建和Static!4)必须在所在类中调用.

static修饰的变量不属于对象属于类.

静态的static用类名去访问.    Person.XXX(static修饰的变量)

内存分析:
将主方法中用到的类的字节码加载进方法区:面向对象Part1对象的创建和Static!

由于Static修饰的变量随着类的加载而加载,所以Static变量加载到内存中的方法区中.方法区才是大家共享的一块区域.

面向对象Part1对象的创建和Static!

类成员:使用static修饰的成员.

实例成员:没有使用static修饰的成员.

局部变量属于它所定义的代码区域里面.局部变量不能用static修饰.static修饰决定于它属于类.

类成员只能访问类成员.实例成员只能访问实例成员.

面向对象Part1对象的创建和Static!

实例成员不可通过类名调用.
在Static方法中只能调用static成员.

非Static方法可以访问Static成员.也可以访问实例成员.

面向对象Part1对象的创建和Static!没有static不能用类名调用.  得先创建一个对象再调用方法.

为什么Static方法中只能调用Static成员?
就好比你饿了,想吃馒头,然而没有馒头.因为没有new出来一个馒头.

Static是和类相关联.         非Static的实例变量是和对象关联.

先有Static后有实例变量.    如果想要在Static方法下面调用非Static变量.需要先new出来或者引用new好的.

上一篇:[转]使用ping钥匙临时开启SSH:22端口,实现远程安全SSH登录管理就这么简单


下一篇:02.Java入门