美文网首页
面向对象

面向对象

作者: 腹黑小叶子orz | 来源:发表于2017-08-02 21:52 被阅读0次

    其实学面向对象这么多天,我也一直不敢写。因为这的确很不好理解,我现在写了,当做加强印象吧,至于理解的是否正确,真的很担心。从面向对象这里开始,就有些迷茫了。
    刚学的时候老师提了两个名词:面向对象和面向过程。并且进行了很长时间的赘述,可是我已经几乎忘了他说的初衷是什么了。

    重新听了一遍录音,目前我的理解应该就是,面向对象是找合适的人去做合适的事。

    面向过程就是亲力亲为。

    恩。。。还是不懂。。。懂了以后马上过来补写。

    随后提到的类和对象现在理解比刚学的时候深刻了一些。

    类:一类事物的统称,比如人;车;书。。。

    对象:就是类具体到个体。

    比如人,具体到个体可以用cv心外無物!恩!他是一个很好很好的人!想到就会很开心!

    再比如车,集体到个体的话,就行宝马,劳斯莱斯,布加迪等。

    书的话,红楼梦,三国演义等等。

    类就是一类事物的统称,包含了这类事物的行为与属性。

    对象就是在这个类下创建的对象。

    随后写了12个类与对象(12生肖)

    package shengxiao;//包名

    class Dragon{//类名

    int age; //成员变量

    String Skin;//成员变量

    public void fly(){//成员方法

    System.out.println("龙会飞")

           }

    }

    public class Dragon {

     public static void main(String[] args) {


      Dragons Dragon = new Dragons();//创建龙的对象

    Dragon.age = 1000;//对成员变量赋值.这里有英文的句号,很小,不便观察
    Dragon.skin = "粗糙";//对成员变量赋值
    Dragon.fly();//成员方法
    System.out.println("龙都是皮肤"+Dragon.skin + "的");
     }
    }

    现在对成员变量理解就是类里面的属性(比如一个人的名字,这是他固有的,且不需要用实际行动表现出来的,比如我的名字,马**,就算我不去做什么,我也是这个名字,这就是成员变量)

    成员方法就是这一类的行为(比如我目前在学习,学习就是我的行为,是需要我付诸行动才可以变现出来的)

    成员变量的定义是;

    数据类型    变量名;

    如 int age;

    成员方法的另一是:

    public void  成员方法名

    如 public void study{}

    大致了解了类和对象的区别,就该在主函数区里进行创建新的类。

    类名    对象名 = new 类名;

    这是创建了一个新的对象,new 的作用就是创建对象。

    创建了对象以后,就该对它进行属性的赋予了。

    对象变量的赋值模式是:对象名. 成员方法 = "根据上面定义成员变量时的数据类型进行赋值";

    成员变量是int age;

    那么新对象的成员变量定义就是 对象名.age = 123;(成员数据类型可能不同,所以需要特别注意,String就是字符串,double就是浮点型。)

    成员方法的调用是   对象名. 成员方法;

    用上面的例子Dragon,他的成员方法就是fly,对象使用成员方法时就是

    对象名.fly();

    目前,代码其实是一门直来直去的语言,他不需要过多的思考,需要的就是记住,这步应该做什么,怎么做,都是用固定的格式图套,包括前面的排序也是一样,写多了就记住了。所以这是我根绝男孩子学的比女孩子快的原因!因为他们的性子够直!

    代码如下:package qianfeng;

    import java.util.Scanner;

    /*
       在Java中定义类的格式:
        自定义类:
         class 类名 {
          
          事物共有的属性描述; 【成员变量】
          
          事物供有的行为描述; 【成员方法】
         }
         【注】 类名要符合明明规范,大驼峰命名法
         
        【误区】
         1. 类只是来描述同一类事物的共同属性,方法,但是不能确定属性的具体数值
         2. 成员方法,必须在类的内部
     
     */
    class SuperHero {
     
     //以下【属性描述】 【成员变量】
     String name;//名字的描述
     int age; //年龄的描述
     char sex; //性别描述
     
     //以下【行为描述】 【成员方法】

     public void sleep() {
      System.out.println("站着睡觉");  
     } //睡觉行为的描述
     

     public void fight() {
      System.out.println("啊 哒~~~~");
     } //打架行为的描述
    }

    public class TestClass {
     public static void main(String[] args) {
      //class SuperHero 是我们对于超级英雄一个描述,需要一个确定的超级英雄,一个对象
      //Scanner sc = new Scanner(System.in);
      //Arr.length 使用的是数组的元素个数【属性】
      //sc.nextInt();
      
      //类名 对象名 = new 类名();
      SuperHero IRONMAN = new SuperHero(); //创建了一个SuperHero的对象 IRONMAN
      // . 的          钢铁侠的名字
      //这里是对IRONMAN 的属性进行赋值
      IRONMAN.name = "钢铁侠";//对象.成员变量
      IRONMAN.age = 40;
      IRONMAN.sex = 'M';
      
      //调用了IRONMAN 的行为
      IRONMAN.sleep();//对象.成员方法
      IRONMAN.fight();
      
      System.out.println(IRONMAN);
      /*
        展示的是对象在堆区的首地址
       qianfeng.SuperHero@15db9742
       qianfeng 包名
       SuperHero 类名
       @表示在那里
       15db9742 是内存的地址,【堆区】中对象所在内存空间的首地址
      */
      System.out.println("Name:" + IRONMAN.name + " Age:" + IRONMAN.age +
        " Sex:" + IRONMAN.sex);
      
      SuperHero COA = new SuperHero();
      //System.out.println(COA);
      COA.name = "美国队长2";
      
      IRONMAN = COA;
      
      System.out.println(IRONMAN.name); //???
     }
     

    }

    相关文章

      网友评论

          本文标题:面向对象

          本文链接:https://www.haomeiwen.com/subject/jawylxtx.html