黑马程序员_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. }  

相关文章推荐

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

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

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

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

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

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

黑马程序员——Java基础语法 之面向对象(概念,特征,this,static关键字,代码块)

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-面向对象概念java语言最大特点,面向对象思想。 面向过程强调的是实现功能的行为,代表语言有 C语言 例子:开...

黑马程序员_Java基础_面向对象(继承、子父类变量和函数以及构造函数特点、final关键字、抽象类、模版方法模式、接口)

------- android培训、java培训、期待与您交流! ---------- 一、面向对象(继承) 继承: 1.提高了代码的复用性。 2.让类与类之间产生了关系。有了这个关系,才有了多态...

黑马程序员———Java编程基础之面向对象

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 面向对象: 面向对象概述:       编程思想.  -> 是计算机编程技术发展到一定阶...

黑马程序员--Java学习日记之面向对象(封装,this和static,继承)

Java基础之面向对象..概述.. 面向对象的三大特征:封装,继承,多态 面向对象思想概述         当需求单一,或者简单时,我们一步一步去操作没问题,并且效率也挺高。         可随着需...
  • Memor_
  • Memor_
  • 2015年06月22日 17:10
  • 493

黑马程序员_java面向对象2

---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------一、      ...

黑马程序员-Java面向对象II(抽象类、接口、参数传递修饰符和内部类问题)

Java面向对象II(抽象类、接口及参数传递问题)
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:黑马程序员_java 面向对象的理解
举报原因:
原因补充:

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