Java面向对象思维、静态、类和对象的理解

 

 public class Dog{
      static String type;//狗的品种
      String name;//狗的姓名
      int age;//狗的年龄
      public static void main(String[] a){
              Dog dog=new Dog();
              dog.type="藏獒";
              dog.name="大黄";
              dog.age=3;
              System.out.println(dog.name+"是"+dog.name+",今年"+dog.age+"岁");    
              dog.run();
              dog.bite();              
 }
    public void run(){
          System.out.println("会跑");
     }
    public void bite(){
          System.out.println("会咬人");
     }
} 

 

        今天又重温了一遍Java,对Java的面向对象思想又有了进一步的了解,当然理解还是很肤浅的。现与大家分享一下我对Java的静态、类和对象的理解。

        那么面向对象的思想是如何运用到Java编程中的呢?打个比方,我想在程序里创造一只狗,那么怎么来描述这条狗,首先可以从特征和行为两个方面来描述,比如狗有品种,名字,年龄等特征,狗会跑、咬人等行为。那么用上面的代码创造一只简单的狗,这只狗“叫大黄,是藏獒,今年3岁,会跑,会咬人”。有人问现在这条狗是什么颜色,有叫的行为吗,对不起,没有。因为你在程序中只为这只狗创造了“品种”、“名字”和“年龄”3个特征和“跑”、“咬人”2个行为,再也没别的了。这个时候正是体现面向对象思维在Java程序中应用,我想让这条狗有颜色,能吃饭,那么我就可以为狗添加一个颜色的特征和吃饭的行为。所谓面向对象就是将狗看着是一个对象,用的Java语言将这个对象描述出来。换句话,对象的所有特征和行为都可以用Java语言描述出来。下面看看Java程序运行的过程是怎样的?

       1.Java程序先编译生成Dog.class类文件;

       2.Java程序在运行的时候首先加载类,那么这里就首先加载了Dog.class类,为type分配了内存空间。


 

          3.运行main方法,此时创建Dog对象,为name和age分配内存空间,然后将对象的地址指向dog,同时对象也指向了品种“type”。代码dog.name="大黄",执行后将内存中name赋值为“大黄”,同理,代码“dog.age=3”执行后,将内存中age赋值为“3”。代码“dog.type="藏獒"”,将type赋值为“藏獒”。运行图如下:



         4.大家可能会有一个疑问,为什么一开始就给“type”分配了内存,因为type是静态的,在编译后就分配分配,而且内存会一直存在,直到程序退出内存才会释放这个空间。

         5.为什么对象指向类中的type,因为对象可以指向类,类是对象的模板,正如做月饼一样,用面粉和芯可以在模子里刻出一个月饼来,模子是圆的刻出的月饼就是圆的,模子是方的,月饼就是方的。这里的type正如模子的形状一样,决定月饼的方圆,而且唯一。

        说的不好,希望大家多多指正!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值