面对对象第1天

142 阅读3分钟

面向对象第1天:

回顾:

精华笔记:

  1. 什么是类?什么是对象?

    • 现实生活是由很多很多对象组成的,基于对象抽出了类

    • 对象:软件中真实存在的单个的个体/东西

      类:类型/类别,代表一类个体

    • 类是对象的模板/模子,对象是类的具体的实例

    • 类中可以包含:

      • 对象的属性/特征/数据-----------------------------成员变量
      • 对象的行为/动作/功能-----------------------------方法
    • 一个类可以创建多个对象

  2. 如何创建类?如何创建对象?如何访问成员?

  3. 方法的重载(overload/overloading):------------------------方便用户的调用

    • 发生在同一类中,方法名称相同,参数列表不同
    • 编译器在编译时会根据方法的签名自动绑定方法

笔记:

  1. 什么是类?什么是对象?

    • 现实生活是由很多很多对象组成的,基于对象抽出了类

    • 对象:软件中真实存在的单个的个体/东西

      类:类型/类别,代表一类个体

    • 类是对象的模板/模子,对象是类的具体的实例

    • 类中可以包含:

      • 对象的属性/特征/数据-----------------------------成员变量
      • 对象的行为/动作/功能-----------------------------方法
    • 一个类可以创建多个对象

  2. 如何创建类?如何创建对象?如何访问成员?

    public class Student {
        //成员变量----描述对象的属性
        String name;
        int age;
        String address;
        //方法-------描述对象的行为
        void study(){
            System.out.println(name+"在学习...");
        }
        void sayHi(){
            System.out.println("大家好,我叫"+name+",今年"+age+"岁了,家住"+address);
        }
    }
    
    public class StudentTest {
        public static void main(String[] args) {
            //创建一个学生对象
            Student zs = new Student();
            //访问成员变量
            zs.name = "zhangsan";
            zs.age = 25;
            zs.address = "河北廊坊";
            //调用方法
            zs.study();
            zs.sayHi();
    
            Student ls = new Student();
            ls.name = "lisi";
            ls.age = 25;
            ls.address = "黑龙江佳木斯";
            ls.study();
            ls.sayHi();
    
            //1)创建了一个学生对象
            //2)给成员变量赋默认值
            Student ww = new Student();
            ww.study();
            ww.sayHi();
        }
    }
    
  3. 方法的重载(overload/overloading):------------------------方便用户的调用

    • 发生在同一类中,方法名称相同,参数列表不同

    • 编译器在编译时会根据方法的签名自动绑定方法

      public class OverloadDemo {
          public static void main(String[] args) {
              Aoo o = new Aoo();
              o.show();
              o.show("zhangsan");
              o.show(25);
              o.show("zhangsan",25);
              o.show(25,"zhangsan");
              //o.show(34.56); //编译错误,没有double型参数的show()方法
          }
      }
      
      class Aoo{
          void show(){}
          void show(String name){}
          void show(int age){}
          void show(String name,int age){}
          void show(int age,String name){}
          //int show(){ return 1; } //编译错误,重载与返回值类型无关
          //void show(String address){} //编译错误,重载与参数名称无关
      }
      

潜艇游戏需求:

  1. 所参与的角色:战舰、炸弹、侦察潜艇、鱼雷潜艇、水雷潜艇、水雷
  2. 角色间的关系:
    • 战舰发射炸弹
    • 炸弹打潜艇(侦察潜艇、鱼雷潜艇、水雷潜艇),若打中了:
      • 炸弹消失、潜艇消失
      • 得东西:
        • 若打中的是侦察潜艇,则玩家得10分
        • 若打中的是鱼雷潜艇,则玩家得40分
        • 若打中的是水雷潜艇,则战舰得1条命
    • 水雷潜艇发射水雷
    • 水雷打战舰,若打中了:
      • 水雷消失
      • 战舰减1条命(命数为0时游戏结束)

补充:

  1. 面向对象:以对象为核心来思考问题、解决问题的一种编程模式

  2. OO:面向对象

    OOA:面向对象分析

​ OOD:面向对象设计

​ OOP:面向对象编程-----------------------------你们所参与的阶段

  1. 高质量的代码:-------------拿年薪(20万起)

    • 复用性好、扩展性好、维护性好、可移植性好
    • 健壮性好、可读性好、效率好......
  2. 类:是一种引用数据类型

              引用
    数据类型 引用类型变量 指向     对象
    Student    zs       = new Student();//创建一个Student型的引用zs,指向了一个学生对象
                                        //zs代表的就是那个学生对象,用zs就是在用那个对象
    
  3. 默认值规则:

    byte,short,int,long,char----------------0
    float,double----------------------------0.0
    boolean---------------------------------false
    引用类型---------------------------------null
    
  4. 方法的签名:方法名+参数列表

  5. 明日单词:

    1)this:这个
    2)Pointer:指针
    3)random:随机