面向对象

来源:互联网 发布:淘宝七乐康药店 假货 编辑:程序博客网 时间:2024/06/16 18:57

ü  要分析有哪些类,首先找名词!

ü  基本类型上的byte,默认为0

short  0 

iint  0

long 0L

char '\u0000'

float 0.0F

double  0.0D

boolean false

所有引用类型 null

8个都是基本类型,在内存中占一块。引用类型二块内存。



定义了s但是他还不存在,就如头脑中的刀枪,你需要new出来才能上战场上用,也叫实例化一下变成现实,

 我们new 出来的对对象 ,叫 hello worid  s从 null变成了 引用的地址 ,根据这个值我们能在堆内存中找到一大块内存,

这个东西是new出来的,new出来的东西分配到堆内存,s是引用。

1.堆内存是用来动态分配内存的,你只有在运行期间才知道这个对象有多大,所以放在堆内存,因为比较大。如果你要是不用了,垃圾回收器就会回收。

2.方法不调用就是无用的代码,只有在执行(调用)的它的时候就会在栈内存中存在,不调用了就会消失。




这个change3,但起了改变参数的作用了,传进来后栈内存也指向了同一堆内存,但是方法里面b.setDay(22)  22把值传给 了 day,day把值传给了属性也叫成员变量的day,属性的day通过构造方法把day=22传递了给对象里的 1,1,2000;所对应的第一个1,所以最后结果调用了这方法的结果就是22 -1-2000堆内存里的值就变了。然后方法结束,栈内存的局部变量都消失了,但堆内存已经形成了永久了改变.


a)    基础类型变量就一块内存,引用类型的变量两块内存。写了static后这个方法就不专属于某一对象了,专属于类了




a)    局部变量值是9;i=1234;方法执行完毕i变成了1234但是方法完事后局部变量栈内存块就消失了,所以这方法白调什么也没起作用。

b)           test.change2(d1);di传过去,

c)    b在栈空间也指向了

d)    方法执行b又指向了 方法执行结束后,栈内存b消失了,

e)    没有人执行 ,垃圾回收器就收走了这个堆内存的空间块、所以这个方法白调了,没有起任何作用和变化。

f)     针对不同的对象调用方法作用域是不同的

g)    通过引用调这个对象 的方法你才可以永远的对这个对象产生作用。





//内部类


public class OutClass2 {


private int x;


class innerClass {
private int x = 10;


public innerClass() {
// TODO Auto-generated constructor stub
}


public void inf(int x) {
x++;//形参x
this.x++;//内部类x
OutClass2.this.x++;//外部类x
}




}






0 0
原创粉丝点击