面向过程专注于解决问题,而面向对象需要经过完整的分析设计之后才能进行开发,现在常见的面向对象的编程语言还有C++和C#.
面向对象的程序开发分为面向对象分析(OOA),面向对象设计(OOD),面向对象编程(OOP).
面向对象的三大特征:封装(外部不可见),继承(扩展类的的功能),多态(方法的重载,对象的多样性).
类相当于共性,而对象相当于个性.类是一类实物的抽象描述,而对象是类的具体实现,所以也称实例.
无类肯定不能产生对象,没有对象则类也不能使,对象的活动范围在类中已经完整定义出来了.
class 类名称{ 属性; //声明成员变量 方法(); //定义方法的内容,与使用mian()方法不同之处在于此处不能用static,private关键字. }
注:不能在方法体内声明一个变量为private,而且在方法里声明变量为private也没什么意义,方法内声明的变量的作用域本来就在方法体内,也在他本身的类中,自然也不会被其他类中的方法所访问.
类名 对象名称 = null; //声明对象 对象名称 = new 类名(); //实例化对象
访问类中的属性和方法:
对象名称.属性名
对象名称.方法名()
注:如果对象只是声明了没有实例化,则在引用的过程中会报NullpointerException.
申明的对象名保存在栈内存(Person per = null ),实例化的对象保存在堆内存(per = new Person() ),堆内存中实际上是存放的对象的各个属性,因为对象只能依靠属性的不同来区分.
实例化(图一)
属性赋值(图二)
多个对象内存分配(图三)
注:属性保存在堆内存中,方法保存在全局代码区中.
引用传递就是将一个堆内存的使用权交给其他对象,就相当于给堆内存空间起了一个别名.
Person per1 = new Person(); per2 = per1; //此处即为引用传递,对per2操作和对per1操作的对象是一样的.注 :一个栈内存只能引用一个堆内存 ,但是一个堆内存可以被多个栈内存所指向 .
在java中不用的内存空间称为垃圾空间,会被垃圾回收机制(GC)进行空间释放.
java中封装性有很多体现,最简单的是加入”private”关键字.
封装属性: private 数据类型 属性名 = 值 封装方法: private 返回值类型 | void 方法名(参数列表)这样在外部无法直接访问 ,但是又需要涉及操作 ,从而引出一个重要概念 :只要是属性必须封装 ,操作通过 getXXX()和 setXXX()方法来实现 .
注:在访问本类其他方法时,为了保证此方法是本类中定义的,可以在方法前 加上this关键字.
this.方法() //调用本类方法.
一般呈现形式:
类 |
属性 |
方法 |
用 – 表示private,用 + 表示public.则一个类可以表示如下:
Person |
-name:String -age:int |
+setName():void +getName():String +setAge():void +getAge():int |
JAVA学习笔记系列
--------------------------------------------
联系方式
--------------------------------------------
Weibo: ARESXIONG
E-Mail: [email protected]
------------------------------------------------