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

本文详细介绍了面向对象的基本概念,包括面向对象与面向过程的区别、类与对象的关系、成员变量与局部变量的区别等。同时深入讲解了封装的概念、意义及在代码中的具体实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

------- android培训java培训、期待与您交流! ----------

1:面向对象
     (1) 面向对象是相对于面向过程而言的,是基于面向过程的。
          面向过程:强调的功能。
          面向对象:强调的是对象,我们用对象完成功能。强调的是结果。
          面向过程和面向对象都是一种编程思想。

     (2)面向对象思想(重点)
          A:是符合人们思考习惯的一种思想。
          B:将复杂的事情简单化了。
          C:将程序员从执行者变成了指挥者。

     (3)面向对象的三大特征
          A:封装
          B:继承
          C:多态

注意:以后在完成一个需求时,先去找对象,看有没有对象提供这样的功能。
                 如果有就直接使用。如果没有,我们就自定义对象,里面封装很多功能使用。

2:类和对象的关系(重点)
     (1)类:对现实世界中事物的描述。
            对象:事物具体存在的个体。
     (2)现实世界中,我们对事物的描述一般是通过属性和行为来做的。
            现在呢,我们需要把这个事物用java语言描述出来。
            java语言中类的成员有:成员变量和成员方法。
            他们的对应关系是:
            属性 -- 成员变量
            行为 -- 成员方法
     (3)自定义类。
           用class定义一个类。
           它里面包含成员变量和成员方法。

           练习:自定义人类,学生类,手机类。
     (4)使用自定义类中的成员。
          class Car
           {
                int price;

                public void show()
                {
                    sop(price);
                }
          }

         创建对象:
         Car c = new Car();
         //使用属性
         sop(c.price);
         c.price = 1000;
         sop(c.price);
         //使用方法
         c.show();
   
        使用对象中的功能的格式:
        对象名.成员变量名
        对象名.成员方法名()


     (5)简单的对象内存图。

3:成员变量和局部变量的区别(重点)
     (1)作用域
           成员变量:针对整个类都有效。
           局部变量:在某个范围内有效。(一般指的就是方法,语句体内)
     (2)存储位置
            成员变量:随着对象的创建而存在,存储在堆内存中。随着对象的消失而消失。
            局部变量:在方法被调用,或者语句被执行的时候存在,存储在栈内存中。
            当方法调用完,或者语句结束后,就自动释放。
     (3)初始值
            成员变量:都有默认初始值。
           局部变量:没有默认初始值,使用前,必须赋值。

4:匿名对象(次重点)
    (1)匿名对象,就是没有名字的对象。是对象的一种简写形式。
     (2)应用场景
      A:只一次调用类中的方法。
            Person p = new Person();
            p.show();
           //匿名使用如下
           new Person().show();
      B:可以作为实际参数在方法传递中使用
           Person p = new Person();
           method(p);
           //匿名使用如下
          method(new Person());

          public static void method(Person p)
          {
            p.show();
          }
  
5:封装(重点)
       (1)隐藏实现细节,对外提供公共的访问方式。
       (2)举例:机箱
       (3)好处:
           A:将变化隔离
           B:便于使用
           C:提高复用性
           D:提高安全性
       (4)封装在代码中的体现。
       A :private
         **是一个权限修饰符。
         **用于修饰成员(成员变量和成员方法)
         **被private修饰的成员只在本类中有效。
       B:一般代码体现
把类中的成员变量用private修饰。然后提供公共的getXxx/setXxx方法。
         class Person
         {
             private String name;
             private int age;

             public void setName(String n)
             {
                 name = n;
             }

             public String getName()
             {
                return name;
             }

            public void setAge(int a)
             {
                age = a;
             }

             public int getAge()
             {
                return age;
             }
         }
     C:私有只是封装的一种体现。

6:构造方法
      (1)构造方法是用于创建对象,并进行初始化值的。
      (2)构造方法的特点:
           A:和类名相同
           B:没有返回类型
           C:没有返回值
      (3)构造方法的注意事项:
           A:如果一个自定义类没有构造方法,系统会默认给出一个无参构造方法。
           B:如果一个自定义类提供了构造方法,那么,系统将不再给出无参构造方法。
           这个时候,你可以不使用无参构造方法。
           如果你想使用,那么,就手动给出无参构造方法。

           建议:一般情况下,我们的自定义类都要手动给出无参构造方法。
      (4)构造方法和成员方法的区别
          A:格式区别
             构造方法和类名相同,并且没有返回类型,也没有返回值。
             普通成员方法可以任意起名,必须有返回类型,可以没有返回值。
          B:作用区别
             构造方法用于创建对象,并进行初始化值。
             普通成员方法是用于完成某个功能的。
          C:调用区别
             构造方法是在创建对象时,用new调用的。
             普通成员方法是由创建的对象调用的。

       (5)给成员变量赋值
           A:通过setXxx方法
           B:通过构造方法

7:this关键字
     (1)this关键字代表本类对象的一个引用。
           谁调用某个方法,那么,在这个方法内部,this就代表谁。
     (2)this的使用场景
         A:局部变量隐藏成员变量
         B:在构造方法中,调用其他的构造方法。
      **这个时候,this(参数)必须作为第一条语句存在。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值