面向对象的程序设计(内存分析)

          

     面向过程的程序设计:需要考虑具体的每一步的实现过程。
     面向对象的程序语言设计:需要考虑一是:类与对象之间的关系;二是类的具体属性和方法;三是类与类之间的属性和方法。
   注意在java中,完事万物皆对象;(Everything is Object)。
   要先定义类,才能有类实例化生成对象。
    类是同类对象的抽象集合。
   对象可以看成属性和方法的封装体。
   成员变量=属性 方法=函数。
 类是又属性和方法组成。
 成员变量与局部变量的区别:成员变量不用初始化就可以使用,因为他有默认的初始值,成员变量的作范围是整个这个类的类体。
 而局部变量只有初始化后才能使用,局部变量的作用域是整个方法体。
 引用:不进行初始化就是“null”;(注意字内存中,引用类型占两块内存,而基本类型只占一块内存)。

引用在内存中的分析:
 引用相当于一个局部变量。
String s;通过执行这条语句会在内存中声明出来两块空间,给s 引用分配一个空间,给s指向的对象分配一个空间,这个空间目前的值为null;
 s = new String("hello world");执行后,s指向的对象的值是“hello world”(注意在java中所有通过关键字 new出来的对象都在 heap上存放,在访问这个对象时,我们不能直接访问这个 new的对象,而是通过这个对象的引用s 去访问这个对象);
 
  类是一个静态的概念,存放在代码区(code segment);
  new 对象存放在堆内存(heap);(动态存放)
  字符串常量和讲静态类型的常量,存放在数据区(data segment);
  局部变量存放在栈内存(stack);
构造方法的作用是:和new 关键字 一起创建一个新对象。
 方法调用完之后,在stack中给实参分配的内存自动消失。

  两个方法有没有有没有构成重载,主要看编译器能不能区分这两个方法。

 当一个参数不能确定指的是哪一个变量的时候,可以按照就近原则。

在静态的方法中不能访问非静态的成员变量。只有通过
 类的引用调用调用该成员变量。

 如果你要把一个类放在包里面,编译后的class文件放在正确的目录下。所对应的目录和报名顺序必须一致。

 如果你想在另一个类下用这个打包的类,必须把它的包名写完整。

 执行一个类需要写全包名。
 找任何类找不到 class文件,需要看classPath.

 
 jar -cvf test.jar *.*(对目录下的所有文件进行打包)

多态存在的必要条件:
 1 要有继承:
 2 要有重写:
 3 父类的引用指向子类对象。

抽象类是用来被继承的,不能被实例化,抽象方法是用来重写的,只需声明,没必要实现。

final 的常量值不能被改变:
final的方法不能被重写;
final的类不能被继承;

在接口中,一个成员变量只能是public static final的。

 一个接口中的方法只能是抽象的。
 




























评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值