JAVA-面向对象

本文介绍了面向过程和面向对象两种编程思想的优缺点。面向过程强调功能实现,代码直观但不易维护和扩展;面向对象则注重代码复用和模块化,利于维护和扩展。面向对象通过类和对象抽象现实世界,提高了代码的灵活性。文章通过实例展示了在游戏场景中如何运用这两种方法,并讲解了类的属性和方法,以及如何声明和调用方法。
摘要由CSDN通过智能技术生成

1、 面向过程与面向对象

面向过程:

​ 优点:

​ 代码直观,相对容易看出代码走向,我们是根据功能去直接开发

​ 自上而下

​ 缺点:

​ 代码的维护与扩展、再次利用比较困难

面向对象:

​ 优点:

​ 代码相对容易维护,相对容易扩展、代码可复用率高

​ 缺点:

​ 代码的封装,与面向过程比较会稍微难看出一些走势

2、 什么是面向对象

比如,我们希望在一个游戏中炸毁一个星球

面向过程:

​ 我们会考虑游戏中那颗星球的一些引爆因素,那个星球的一些环境问题……

​ 主要围绕这颗星球进行。

面向对象:

​ 我们会考虑所有星球存在的一些引爆因素,所有星球的一些环境问题……

​ 主要围绕星球整体。

所以说:面向过程,我们只会实现当前目标,如果把“这颗星球”替换成“那颗星球”,此时我们需要重新操作;

​ 面向对象,我们只需要实现了这一整套逻辑,无论是“这颗星球”还是“那颗星球”都可以当作参数去调用对应的方法

3、 面向对象

核心:类

​ 两大核心

​ 静态特征:属性,成员变量

​ 动态特征:行为、方法

4、 类和对象

对象是类的实例

理论来说,如果不做特别的约定,那么一个类可以实例化出多个对象。

5、 声明一个类——属性

Dog.java

  public class Dog{
      //属性
      //狗名
      String dogName;
      //品种名
      String typeName;
      //狗性别
      char dogSex;
  }

Test.java

 public static void main(String[] args){
      //实例化四只狗
      Dog dog = new Dog();
      Dog wangCai = new Dog();
      Dog laiFu = new Dog();
      Dog daHuang = new Dog();
      
      //给第一只狗补充他的全部属性
      dog.dogName="狗";
      dog.dogSex='1';
      dog.typeName="中华田园犬";
      //给第二只狗补充他的两个属性
      wangCai.dogName="旺财";
      wangCai.dogtype="柴犬";
      //给第三只狗补充它的一个属性
      laiFu.dogName="来福";
      //不给第四至狗补充属性
      
      //打印狗的名字    
      System.out.println(dog.dogName);
          System.out.println(wangCai.dogName);
          System.out.println(laiFu.dogName);
          System.out.println(daHuang.dogName);
  }

6、 声明一个方法

  
  //方法由
  //修饰符[public/static/final] 返回类型[void-无返回类型,引用数据类型-String/自定义类,基本数据类型-八大基本数据类型] 方法名(参数){方法体}

例如:

  public class dog{
      //属性
      //。。。
      
      //方法
      //犬吠
      //public为修饰符(访问修饰符)
      //void为返回类型(void是无返回类型)
      //返回类型如果是void可以没有return(但是你也能写return,return的作用为结束当前的方法)
      //return和break不一样,break最用在switch和循环中,是打破的意思,return是返回的意思
      //breaking方法名——符合表示命名规则,规则和变量基本相同,首字母要求小写,并且满足驼峰命名,
      // 有意义
      //()括号内为参数,这个方法是无参方法(没有参数的方法)
      //{}大括号内为方法体,这个方法是输出一句话
      public void barking(){
          System.out.println("这只名叫"+dogName+"的狗发出了声音……");
      }
      
      //将这个狗编程字符串,展示出他的属性
      //如果你的返回类型不为void,那么你这个方法一定要return,并且return的这个内容必须符合你的回回类型
      public String toString(){
          return "{dogName"+dogName+"typeName"+typeName+"dogSex="+(int)dogSex+"}";
      }
      //此方法会返回狗的名字
      //dogName为这个类的一个属性,属性的类型为String和这个方法的返回类型一直
      public String getName(){
          return dogName;
      }
  }
  //方法分使用,两种情况
  //同一类中可以直接调用,比如:
  public class Zoo{
      String palyerNmae;
      int palyerAge;
      
      //print()方法调用 show() 方法不需要实例化zoo对象
      public void print(){
          System.out.println(show());
      }
      public String show(){
          String sReturn="";
          sReturn=playerName+"的年龄为:"+palyerAge+",";
          if(playerAge<10){
              sReturn="门票免费"  ;      
          }else{
              sReturn="门票价格为20元";
          }
          return sReturn;
      }
  }
 //不同中调用需要一般方法,先实例化Zoo对象获得zoo之后使用zoo.print();进行调用
  //入
  public static void main(String[] args){
      Zoo zoo=new Zoo();
      Scanner input=new Scanner(System.in);
      while(true){
          System.out.print("请输入姓名:");
          zoo.playerName=input.next();
          if("n".equals(zoo.playerName)){
              break;
          }
          System.out.print("请输入年龄:");
          zoo.playerAge=input.nextInt();
          zoo.print();
      }
      System.out.println("退出程序");
  }

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值