首页 > 编程语言 > 详细

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

时间:2015-01-29 02:07:09      阅读:268      评论:0      收藏:0      [点我收藏+]

?

?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分配了内存空间。

bubuko.com,布布扣
?

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


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

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

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

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

原文:http://qianjiangbing.iteye.com/blog/2181015

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!