黑马程序员----------对象与类


------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

1.      面向对象程序设计概述:

(1)      OOP: Object OrientedProgramming,面向对对象的程序设计。所谓“对象”在显式支持面向对象的语言中,一般是指类在内存中装载的实例,具有相关的成员变量和成员函数(也称为:方法)。面向对象的程序设计完全不同于传统的面向过程的程序设计,它大大地降低了软件开发的难度,使编程就像搭积木一样简单,是当今电脑编程的一股势不可挡的潮流。

注意:OOP更加适用于解决规模较大的问题。对于一些规模较小的问题,将其分解为过程的开发方式比较理想。

(2)      类:它是构造对象的模板或蓝图。我们可以将类想象成制作小甜饼的切割机,将对象想象成小甜饼。由类构造(construct)对象的过程称为创建类的实例(instance)。

(3)      对象的三个主要特性:

(1)      对象的行为(behavior)

(2)      对象的状态(state)

(3)      对象的标识(identity)

(4) 类之间的关系:

      (1)依赖(uses-a)

          (2)聚合(has-a)

          (3)继承(is-a)

          设计类时,应该尽可能的将相互依赖的类减至最少。如果类A不知道类B的存在,他就不会关心B的任何改变,用软件工程的术语来说,就是让类之间的耦合度最小。

2. 成员变量和局部变量的区别

成员变量:成员变量定义在类中,在整个类中都可以访问。

                     成员变量随着对象的建立而建立,存在于对象所在的堆内存中。

                     成员变量有初始值。

局部变量:局部变量只定义在局部范围内,如:函数内,语句块内。

                     局部变量存在于栈内存中。

                     作用的范围结束,变量空间会自动释放。

                     局部变量没有默认初始化值。

3. 封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。

好处:将变化隔离,便于使用,提供重用性,提高安全性。

封装原则:将不需要对外提供的内容都隐藏起来,把属性都隐藏,提供公共方法对其访问。

4.this关键字有两种用处:

1,  代表其所在函数所属对象的引用,即本类对象的引用。

2,  本类的其他构造器。此用途时this只能放在构造函数的第一行。

Super关键字的两种用途:

1,  父类对象的引用。

2,  父类构造器。此用途时this只能放在构造函数的第一行。

5.静态:

         static关键字用于修饰成员(成员变量和成员函数)。被修饰后的成员具有以下特点:随着类的加载而加载,优先于对象存在,被所有的对象所共享,可以直接被类名调用。使用注意:静态方法只能访问静态成员,静态方法中不可以写this,super关键字,主函数是静态的。

 

静态代码块在类加载的时候加载,且只加载一次。

 

Person p = new Person();

这句话做了哪些事情:

1,  因为new用到了Person.class,所以会先找到Person.class文件加载到内存中。

2,  执行该类中的static代码块,如果有的话,给Person.class类进行初始化。

3,  在堆内存中开辟空间,分配内存地址。

4,  在堆内存中建立对象的特有属性。并进行默认初始化。

5,  对属性进行显示初始化。

6,  对对象进行构造代码块初始化。

7,  对对象进行对应的构造函数初始化。

8,  将内存地址赋给栈内存中的对象p变量

什么时候使用静态:

(1)      当对象中出现共享数据时,该数据被静态所修饰。对象中的特有数据要定义成非静态存放在堆内存中。

(2)      当功能内部没有访问到非静态数据(对象的特有数据),那么该函数就可以被定义成静态的。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值