二,面向对象基础

1.面向对象

面向过程专注于解决问题,而面向对象需要经过完整的分析设计之后才能进行开发,现在常见的面向对象的编程语言还有C++C#.

面向对象的程序开发分为面向对象分析(OOA),面向对象设计(OOD),面向对象编程(OOP).

面向对象的三大特征:封装(外部不可见),继承(扩展类的的功能),多态(方法的重载,对象的多样性).

2.类与对象的概念

类相当于共性,而对象相当于个性.类是一类实物的抽象描述,而对象是类的具体实现,所以也称实例.

无类肯定不能产生对象,没有对象则类也不能使,对象的活动范围在类中已经完整定义出来了.

2.1类的定义格式

class 类名称{

属性; //声明成员变量

方法(); //定义方法的内容,与使用mian()方法不同之处在于此处不能用static,private关键字.

}




:不能在方法体内声明一个变量为private,而且在方法里声明变量为private也没什么意义,方法内声明的变量的作用域本来就在方法体内,也在他本身的类中,自然也不会被其他类中的方法所访问.

2.2对象的创建和使用

类名 对象名称 = null; //声明对象

对象名称 = new 类名(); //实例化对象



或者 : 类名 对象名称 = new 类名 ();


访问类中的属性和方法:

  • 对象名称.属性名

  • 对象名称.方法名()

:如果对象只是声明了没有实例化,则在引用的过程中会报NullpointerException.

申明的对象名保存在栈内存(Person per = null ),实例化的对象保存在堆内存(per = new Person() ),堆内存中实际上是存放的对象的各个属性,因为对象只能依靠属性的不同来区分.

二,面向对象基础

                                       实例化(图一)

二,面向对象基础

                                        属性赋值(图二)

二,面向对象基础

                                      多个对象内存分配(图三)

:属性保存在堆内存中,方法保存在全局代码区中.

2.3引用传递

引用传递就是将一个堆内存的使用权交给其他对象,就相当于给堆内存空间起了一个别名.

Person per1 = new Person();

per2 = per1; //此处即为引用传递,对per2操作和对per1操作的对象是一样的.
:一个栈内存只能引用一个堆内存 ,但是一个堆内存可以被多个栈内存所指向 .

java中不用的内存空间称为垃圾空间,会被垃圾回收机制(GC)进行空间释放.

2.4封装性

java中封装性有很多体现,最简单的是加入”private”关键字.


封装属性: private 数据类型 属性名 = 值

封装方法: private 返回值类型 | void 方法名(参数列表)
这样在外部无法直接访问 ,但是又需要涉及操作 ,从而引出一个重要概念 :只要是属性必须封装 ,操作通过 getXXX()setXXX()方法来实现 .


:在访问本类其他方法时,为了保证此方法是本类中定义的,可以在方法前 加上this关键字.

this.方法() //调用本类方法.

2.5类的图形表示

一般呈现形式:

              类                
              属性
              方法

用 – 表示private,+ 表示public.则一个类可以表示如下:

    Person

    -name:String

    -age:int

    +setName():void

    +getName():String

    +setAge():void

    +getAge():int



:为了让设计更加简单 ,我们可以借助一些工具来完成 ,例如 Power Designer,然后可以直接生成操作代码 ,开发中为了便于查看和维护 ,一定要有类图的表示关系 .



JAVA学习笔记系列

--------------------------------------------

                      联系方式

--------------------------------------------

        Weibo: ARESXIONG

        E-Mail: [email protected]

------------------------------------------------

你可能感兴趣的:(java基础,JavaSE,java入门,JAVA初学)