java中的面相对象

java是一种面向对象的语言,自然就是针对对象,所以面向对象的程序是由对象组成的。OOP表示的意思就是面向对象编程。这里就会有一些基本概念。

面向对象:现实生活中存在各种形态不同的事物,这些事物之间存在着各种各样的联系。在程序中使用对象来映射现实生活中的事物,使用对象的关系来描述事物之间的联系,这种思想就是面向对象。

类和对象:类的概念属于抽象点,相对于设计房屋的图纸,而对象的概念就是相对于具体点,就是具体的房屋,面向对象的程序设计就是围绕着类和对象进行展开的,而类的是一类事物的共性,对象是事物的个性。换句话说,类是对某一类事物的抽象描述,而对象用于表示现实中该类事物的个体。对象中所有的操作都是由类来决定。


封装性:封装性是对象相关的一个比较重要的性质。对于代码的重用性,如何定义了一个属性,想要别人的进行访问,可以把关键字改成private,这样其他类进行访问的时候必须进行getter,setter方法才可以进行。

这里的代码表示私有属性和私有方法不可以被外部类进行使用,只能通过getter,setter方法才可以进行。同时如果方法变成私有的方法,只能在原本类中定义一个共有的方法调用,这样就可以被外部类进行调用了

[java]  view plain  copy
  1. package demo;  
  2. public  class Book {  
  3.     private String name;  
  4.     private int page;     
  5.     public Book(){  
  6.         System.out.println("hello world");  
  7.     }     
  8.     public Book(String name,int page){    
  9.         this.setPage(page);  
  10.         this.setName( name);  
  11.         System.out.printf("Name="+name+",page="+page);  
  12.     }  
  13.     public String getName() {  
  14.         return name;  
  15.     }  
  16.     private void setName(String name) {  
  17.         this.name = name;  
  18.     }  
  19.     public int getPage() {  
  20.         return page;  
  21.     }  
  22.     public void setPage(int page) {  
  23.         this.page = page;  
  24.     }  
  25.     private void print(){  
  26.         System.out.printf("Name="+name+",age="+page);  
  27.     }  
  28. }  

类之间的关系:

1.依赖;即是一种“user-a”的关系,当然这是一种非常常见的关系。它表示一个类之间引用的另一个类,这样就说明一个类依赖另一个类。比如房屋的建筑需要板砖来组成,这样房屋里就可以增加板砖这样的类,两个类产生依赖的关系。在实际操作中,尽量使得相互依赖的类减少,如何类A不知道类B的存在,自然不需要关注B的变化,这样就不会因为类B的变化而产生类A的错误,从而实现的低耦合。

[java]  view plain  copy
  1. //一个房屋的类  
  2. public  class Home {  
  3. //增加板砖的方法  
  4. //Brick是板砖的类  
  5. public void add(Brick brick ){  
  6.     .....  
  7. }  
  8. }  
2.聚合 :即“has-a ”关系,是一种特别容易理解的关系。聚合关系就是说明一个类的对象包含另一个类的对象。在struts的Action类中经常会涉及到服务层的类的应用。也是一种聚合关系。

[java]  view plain  copy
  1. //一个房屋的类  
  2. public  class Home {  
  3. //包含Brick这个类  
  4. //Brick是板砖的类  
  5.   Brick birck;  
  6. ........  
  7. }  
3 .继承 :即“is-a”关系,是一种表示特殊和一般的关系,一个Person类是一个Student类的父类,这样Student类就继承了Person这个类的,同时可以访问Person类当中的任何方法,Person类中有吃饭,睡觉这些方法,那么Student类当中也可以具备这些方法,而且Student类当中可以拓展方法,不但包含继承Person类的方法,还可以独自拥有一些额外的功能。

[java]  view plain  copy
  1. //一个学生类继承了人类  
  2. public  class Student extends Person {  
  3. ........  
  4. }  
4. 组合 :组合是一种强依赖的关系,比如房屋与房间的关系,房屋没有了,房间的概念自然也就消失了
[java]  view plain  copy
  1. class Room{  
  2.     public Room createRoom(){  
  3.         return new Room();  
  4.     }  
  5. }  
  6. class House{  
  7.     private Room room;  
  8.     public House(){  
  9.         room = new Room();  
  10.     }  
  11.   
  12.     public void createRoom(){  
  13.         room.createRoom();  
  14.     }  
5.多态:我这里说明的多态都是运行时的多态, 面向对象语言 中,接口的多种不同的实现方式即为多态,意味着一个对象有着多重特征,可以在特定的情况下,表现不同的状态,从而对应着不同的属性和方法。从程序设计的角度而言,多态可以这样来实现
[java]  view plain  copy
  1. public interface Parent//父类接口  
  2. {//定义一个方法  
  3.     public void hello();  
  4. }  
  5. public class Child_A implements Parent  
  6. {  
  7.     public void hello();  
  8.     {  
  9.     //具体的实现细节;  
  10.     }  
  11. }  
  12. public class Child_B implements Parent  
  13. {  
  14.     public void hello();  
  15.     {  
  16.     //具体的实现细节;  
  17.     }  
  18. }  
  19. public static void main(String[]args){  
  20. Parent pa = new Child_A();  
  21. //pa.hello()则显然是调用Child_A的方法;  
  22. Parent pa = new Child_B();  
  23. //pa.hello()则是在调用Child_B的方法。  
  24. //所以,我们对于抽象的父类或者接口给出了我们的具体实现后,pa 可以完全不用管实现的细节,只访问我们定义的方法,  
  25.   
  26. }  





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值