面向对象ooDay1

海哥  金牌会员 | 2022-9-16 17:15:57 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 900|帖子 900|积分 2700

精华笔记:

  • 什么是类?什么是对象?

    • 现实生活中是由很多很多对象组成的,基于对象抽出了类
    • 对象:软件中真实存在的单个个体/东西
      类:类型/类别,代表一类个体
    • 类是对象的模板/模子,对象是类的具体的实例
    • 类中可以包含:

      • 对象的属性/特征-----------------------------成员变量
      • 对象的行为/动作/功能----------------------方法

    • 一个类可以创建多个对象

  • 如何创建类?如何创建对象?如何访问成员?
  • 方法的签名:方法名+参数列表
  • 方法的重载(overload/overloading):-------------------------------方便用户的调用

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

笔记:


  • 什么是类?什么是对象?

    • 现实生活中是由很多很多对象组成的,基于对象抽出了类
    • 对象:软件中真实存在的单个个体/东西
      类:类型/类别,代表一类个体
    • 类是对象的模板/模子,对象是类的具体的实例
    • 类中可以包含:

      • 对象的属性/特征-----------------------------成员变量
      • 对象的行为/动作/功能----------------------方法

    • 一个类可以创建多个对象

  • 如何创建类?如何创建对象?如何访问成员?
    1. package ooday01;
    2. //学生类
    3. public class Student {
    4.     //成员变量----对象的属性
    5.     String name;
    6.     int age;
    7.     String address;
    8.     //方法-----对象的行为/功能
    9.     void study(){
    10.         System.out.println(name+"在学习...");
    11.     }
    12.     void sayHi(){
    13.         System.out.println("大家好,我叫"+name+",今年"+age+"岁了,家住"+address);
    14.     }
    15. }
    16. package ooday01;
    17. //学生类的测试类
    18. public class StudentTest {
    19.     public static void main(String[] args) {
    20.         //创建一个学生对象
    21.         Student zs = new Student();
    22.         //给成员变量赋值
    23.         zs.name = "zhangsan";
    24.         zs.age = 18;
    25.         zs.address = "河北廊坊";
    26.         //调用方法
    27.         zs.study();
    28.         zs.sayHi();
    29.         Student ls = new Student();
    30.         ls.name = "lisi";
    31.         ls.age = 25;
    32.         ls.address = "黑龙江佳木斯";
    33.         ls.study();
    34.         ls.sayHi();
    35.         //1)创建了一个学生对象
    36.         //2)给所有成员变量赋默认值
    37.         Student ww = new Student();
    38.         ww.study();
    39.         ww.sayHi();
    40.     }
    41. }
    复制代码
  • 方法的签名:方法名+参数列表
  • 方法的重载(overload/overloading):-------------------------------方便用户的调用

    • 发生在同一类中,方法名相同,参数列表不同
      1. public class Aoo{
      2.     void show(){}
      3.     void show(String name){}
      4.     void show(int age){}
      5.     void show(String name,int age){}
      6.     void show(int age,String name){}
      7.     //int show(){ return 1; } //编译错误,重载与返回值类型无关
      8.     //void show(String address){} //编译错误,重载与参数名称无关
      9. }
      复制代码
    • 编译器在编译时会根据方法的签名自动绑定方法
      1. public class OverloadDemo {
      2.     public static void main(String[] args) {
      3.         Aoo o = new Aoo();
      4.         o.show();
      5.         o.show("zhangsan");
      6.         o.show(25);
      7.         o.show("zhangsan",25);
      8.         o.show(25,"zhangsan");
      9.     }
      10. }
      复制代码

补充:


  • OO:面向对象
    OOA:面向对象分析
    OOD:面向对象设计
    OOP:面向对象编程--------------------------你们以后所参与的
  • 高质量的代码:------------------------想拿年薪

    • 复用性好、扩展性好、维护性好、移植性好、健壮性好、可读性好、效率好......

  • 类:是一种引用数据类型,是我们自己创造的一种数据类型
    1.            引用
    2. 数据类型  引用类型变量  指向      对象
    3. Student     zs        =   new Student();
    4. //读作:声明一个Student类型的引用zs,指向了一个学生对象
    复制代码
  • 默认值:
    1. byte,short,int,long,char-----------------0
    2. float,double-----------------------------0.0
    3. boolean----------------------------------false
    4. 引用类型----------------------------------null
    复制代码
  • 潜艇游戏需求:

    • 所参与的角色:战舰、炸弹、侦察潜艇、鱼雷潜艇、水雷潜艇、水雷
    • 角色间的关系:

      • 战舰发射炸弹
      • 炸弹打潜艇(侦察潜艇、鱼雷潜艇、水雷潜艇),若打中了:

        • 潜艇消失、炸弹消失
        • 若打中的是侦察潜艇,则玩家得10分
          若打中的是鱼雷潜艇,则玩家得40分
          若打中的是水雷潜艇,则战舰增1条命

      • 水雷潜艇发射水雷
      • 水雷打战舰,若打中了:

        • 水雷消失
        • 战舰减1条命(命数为0时游戏结束)




免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

海哥

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表