黑马程序员_java 面向对象的理解

原创 2015年07月09日 22:03:33
------- android培训java培训、期待与您交流! ----------

1.1理解面向对象

面向对象是相对面向过程而言

面向对象和面向过程都是一种思想

面向过程:强调的是功能行为

面向对象:将功能封装进对象,强调具备了功能的对象面向对象是基于面向过程的

[java] view plaincopy
  1. class    
  2. {  
  3.     public static void main(String[] args)   
  4.     {  
  5.         System.out.println("Hello World!");  
  6.     }  
  7. }  
  8.   
  9. /* 
  10. 人开门:名词提炼法。 
  11.  
  12. { 
  13.     开门(门) 
  14.     { 
  15.         门.开(); 
  16.     } 
  17. } 
  18.  
  19.  
  20. { 
  21.     开(){操作门轴等。} 
  22. } 
  23.  
  24. */  


1.2面向对象的特点

三个特点:封装,继承,多态

以后开发其实就是找对象使用,没有对象,就创建对象找对象,建立对象,使用对象,维护对象的关系

2.类与对象的关系

现实生活中的对象:张三,李四

想要描述,想要描述对象中共性的内容,对具体的抽象

描述时:这些对象的共性有:姓名,年龄,性别,学习java功能


映射到java中,描述就是class定义的类,具体对象就是对应java在堆内存中庸new建立实体

类: 就是对现实生活事物的描述

对象:就是这类事物,实实在在存在的个体 

匿名对象是对象的简化形式

匿名对象两种使用情况:当对对象方法仅进行一次调用时,匿名对象可以作为实际参数进行传递

[java] view plaincopy
  1. class Car  
  2. {  
  3.     //描述颜色  
  4.     String color = "红色";  
  5.     //描述轮胎数  
  6.     int num = 4;  
  7.   
  8.     //运行行为。  
  9.     void run()  
  10.     {  
  11.   
  12.         System.out.println(color+".."+num);  
  13.     }  
  14.       
  15. }  
  16.   
  17.   
  18. class  CarDemo  
  19. {  
  20.     public static void main(String[] args)   
  21.     {  
  22.         //生产汽车。在java中通过new操作符来完成。  
  23.         //其实就是在堆内存产生一个实体。  
  24.         //Car c = new Car();//c就是一个类类型变量。记住:类类型变量指向对象。  
  25.   
  26.         //需求:将已有车的颜色改成蓝色。指挥该对象做使用。在java指挥方式是:对象.对象成员  
  27.         //c.color = "blue";  
  28.           
  29.         //c.run();  
  30.   
  31.         //Car c1 = new Car();  
  32.         //c1.run();//red 4;  
  33.   
  34.   
  35. //      Car c = new Car();  
  36. //      c.num = 5;  
  37.         /* 
  38.         new Car().num = 5; 
  39.         new Car().color = "blue"; 
  40.         new Car().run(); 
  41.  
  42.         Car c = new Car(); 
  43.         c.run(); 
  44.         c.num = 4; 
  45.         new Car().run(); 
  46.         */  
  47.         //匿名对象使用方式一:当对对象的方法只调用一次时,可以用匿名对象来完成,这样写比较简化。  
  48.         //如果对一个对象进行多个成员调用,必须给这个对象起个名字。  
  49.         //匿名对象使用方式二:可以将匿名对象作为实际参数进行传递。  
  50.   
  51.   
  52.         Car q = new Car();  
  53.         show(q);  
  54.   
  55.         //show(new Car());  
  56.     }  
  57.   
  58.     //需求:汽车修配厂。对汽车进行改装,将来的车够改成黑车,三个轮胎。  
  59.     public static void show(Car c)  
  60.     {  
  61.         c.num = 3;  
  62.         c.color = "black";  
  63.         c.run();  
  64.     }  
  65. }  


3.封装

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

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

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

[java] view plaincopy
  1. /* 
  2. private :私有,权限修饰符:用于修饰类中的成员(成员变量,成员函数)。 
  3. 私有只在本类中有效。 
  4.  
  5. 将age私有化以后,类以外即使建立了对象也不能直接访问。 
  6. 但是人应该有年龄,就需要在Person类中提供对应访问age的方式。 
  7.  
  8. 注意:私有仅仅是封装的一种表现形式。 
  9.  
  10.  
  11. 之所以对外提供访问方式,就因为可以在访问方式中加入逻辑判断等语句。 
  12. 对访问的数据进行操作。提高代码健壮性。 
  13.  
  14. */  
  15.   
  16. class Person  
  17. {  
  18.     private int age;  
  19.     public void setAge(int a)  
  20.     {  
  21.         if(a>0 && a<130)  
  22.         {  
  23.             age = a;  
  24.             speak();  
  25.         }  
  26.         else  
  27.             System.out.println("feifa age");  
  28.     }  
  29.   
  30.     public int getAge()  
  31.     {  
  32.         return age;  
  33.     }  
  34.     private void speak()  
  35.     {  
  36.         System.out.println("age="+age);  
  37.     }  
  38. }  
  39.   
  40. class PersonDemo  
  41. {  
  42.     public static void  main(String[] args)  
  43.     {  
  44.         Person p = new Person();  
  45.   
  46.         //p.age = -20;  
  47.         p.setAge(-40);  
  48.         //p.speak();  
  49.     }  
  50. }  

黑马程序员——面向对象1

面向对象 ------- android培训、java培训、期待与您交流! ---------- 对象的建立为了封装数据。 将功能封装成对象,强调具备了功能的对象。 面向对象的三个特征: 封装...
  • Xerxes_H
  • Xerxes_H
  • 2013年05月20日 15:51
  • 1060

[黑马程序员] Java基础加强(5-7天)2010年Java高新技术_张孝祥

---------------------- ASP.Net+Android+IO开发、.Net培训、期待与您交流! ---------------------- 第1单元:概述 ...
  • shang1jk
  • shang1jk
  • 2013年05月08日 09:57
  • 2829

传智播客 刘意_2015年Java基础视频-深入浅出精华版 笔记(day01~day10)(2015年11月17日20:51:59)

day01 win 7系统打开DOS有趣方法:按住shift+右键,单击“在此处打开命令窗口”(注意:在此处可以是任何的文件夹,不一定是桌面) 用DOS删除的文件不可以在回收站恢复?!! ...
  • juliantem
  • juliantem
  • 2015年08月30日 13:09
  • 3496

黑马程序员 - Java基础教学 - 05 - 面向对象(1).doc

  • 2013年04月19日 23:47
  • 311KB
  • 下载

黑马程序员_java面向对象相关 个人理解

------- android培训、java培训、期待与您交流! ---------- 以下仅为个人平时学习笔记,可能有有错误的地方,希望有看到者提出来,共同讨论,谢谢! 1.继承   并不...
  • fengpanyunhaitian
  • fengpanyunhaitian
  • 2012年11月28日 20:02
  • 105

黑马程序员--java面向对象的理解

------- android培训、java培训、期待与您交流! ---------- 理解面向对象的思想,首先我们需要知道在理解面向对象时需要知道的几个名词:对象、类。   对象:  ...
  • macover
  • macover
  • 2015年04月06日 15:30
  • 178

黑马程序员——Java基础---深入理解面向对象(封装继承和多态)

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------ 面向对象三个特征: 封装,继承,多态。 封装性:        封装性将尽可能对外界公布一个有限的...
  • wuxiaoyang2010
  • wuxiaoyang2010
  • 2015年01月13日 20:06
  • 334

黑马程序员--Java面向对象理解

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------ 1.1 面向对象概念1.1.1 面向对象概念 面向对象(Object Oriented,O...
  • sa_leon
  • sa_leon
  • 2015年08月08日 14:27
  • 160

黑马程序员-------- java面向对象 封装、构造函数、this static关键字、单例设计

-----------android培训、java培训、java学习型技术博客、期待与您交流!------------                                        ...
  • blueskygjb
  • blueskygjb
  • 2014年11月26日 09:21
  • 570

黑马程序员——Java基础---面向对象(封装、继承、多态)

-----------android培训、java培训、java学习型技术博客、期待与您交流!------------   一、对象         就是指的一个个实体           在生...
  • holly_lfj
  • holly_lfj
  • 2015年10月15日 20:38
  • 147
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:黑马程序员_java 面向对象的理解
举报原因:
原因补充:

(最多只允许输入30个字)