首页 > 其他 > 详细

aaaaaa

时间:2015-06-12 18:50:38      阅读:243      评论:0      收藏:0      [点我收藏+]

黑马程序员------面向对象(一)

1.1 面向对象概念

1.1.1 面向对象概念

面向对象是相对面向过程而言,强调的是功能的对象。面向对象和面向过程都是一种思想。

举例理解面向对象:如请人修车,我只面向修车的人,不面对修车的过程。只看中修好车的结果。

面向对象的本质:以类的方式组织代码,以对象的方式组织数据。

 

1.1.2 面向对象的特点

是一种符合人们思考习惯的思想,可以将复杂的事情简单化,将程序员从执行者转换成了指挥者。


1.1.3 面向面向对象的特征:
封装(encapsulation)
继承(inheritance)
多态(polymorphism)
以后开发,其实就是找对象,没有对象,自己创建一个

 

1.2 类与对象之间的关系

1.2.1类和对象的关系

现实生活中的对象:张三 李四。
想要描述:提取对象中共性内容。对具体的抽象。
描述时:这些对象的共性有:姓名,年龄,性别,学习java功能。


映射到java中,描述就是class定义的类。
具体对象就是对应java在堆内存中用new建立实体,属性对应是类中变量,行为对应的类中的函数(方法)。

类就是:对现实生活中事物的描述。定义类,其实就是在描述事物,就是在定义属性和行为。

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

 

1.2.2成员变量和局部变量的区别

成员变量和局部变量。
作用范围。
成员变量作用于整个类中。
局部变量变量作用于函数中,或者语句中。
在内存中的位置:
成员变量:在堆内存中,因为对象的存在,才在内存中存在。
局部变量:存在栈内存中。

 

1.2.3示例:创建对象,使用对象

需求:描述汽车(颜色,轮胎数)。描述事物其实就是在描述事物的属性和行为

//对Car这类事物进行描述
class Car
{

  String color = "red";//描述颜色
  int num = 4;//描述轮胎数
  void run()
  {

    System.out.println("color = " +color +"...num = " +num);//输出汽车的值

  }
}

class CarDemo

{
  public static void main(String[] args)
  {
    Car c = new Car();//通过new关键字,建立对象,c就是一个类类型的引用变量,指向了该类的对象
    c. color = "blue" ;//对对象的属性进行修改
    c.run() ;//通过对象.成员的形式来调用对象的run方法
  }
}

 

1.3 封装

1.3.1封装:
是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
 
好处:1. 将变化隔离。
     2. 便于使用。
   3. 提高重用性。
     4. 提高安全性。

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

1.3.2对象属性的私有
1. private :私有,权限修饰符:用于修饰类中的成员(成员变量,成员函数)。

2.被私有化的成员只在本类中有效。

3.注意:私有仅仅是封装的一种表现形式

之所以对外提供访问方式,就因为可以在访问方式中加入逻辑判断等语句。

对访问的数据进行操作。提高代码健壮性

 
1.3.3示例:
/*
人:属性:年龄

  行为:说话

本例将age私有化以后,类以外即使建立了对象也不能直接访问。
但是人应该有年龄,就需要在Person类中提供对应访问age的方式。

之所以对外提供访问方式,就因为可以在访问方式中加入逻辑判断等语句。
对访问的数据进行操作。提高代码健壮性。

*/

class Person

{

  private int age ;//通过private私有化age,把属性进行隐藏,让别人不能直接访问赋值,

  public void setAge( int a) //通过set、get方法对外提供公共方法对其访问

  {

    if (a > 0 && a < 130)

    {

      age = a;

    }

  else

                 System.out .println("feifa age" );

      }

       public int getAge()//取得年龄信息

  {

             return age ;

      }

       void speak(){

            System.out .println("age = " + age);

      }

}

class PersonDemo

{

       public static void main(String[] args)

  {

    Person p = new Person();//创建并实例化对象

    p.setAge(20);

    p.speak();

           //如果赋值不合法,则set方法不允许成功赋值

          // p.setAge(-40);

      }

 
END

aaaaaa

原文:http://www.cnblogs.com/jiandonn/p/4572034.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!