面向对象

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

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

面向过程就是亲力亲为。

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

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

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

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

比如人,具体到个体可以用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); //???
 }
 

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容