面向对象编程一

    时至今日,Me终于学习完了绝世武功的基本招式,今后的日子便开始研究其内功心法,希望在这高手如云的世道里,博得一方土地。

 

一、面向对象的发展

    因为现实世界太复杂多变,面向过程的分析方法无法满足,因此面向对象应运而生,来解决这让人烦乱不堪的编程方式。

    采用面向过程必须要了解整个过程,每个过程都有其相关执行过程,如果中间有任何一个步骤出现问题,都将会影响整个程序的进程。 而面向对象将现实世界分割成不同的单元,在实现某个功能时,只需要将各个对象结合其来就可以了。由于面向对象更符合人的思维模式,更容易的分析现实世界,所以在程序设计中也采用了面向对象的技术。

 

二、类与对象

     类是对相同事物的抽象描述,通常由某些名词组成,如学生类、班级类、课程类、成绩类等。类的基本定义如下:

  类修饰符  class  类名{
类体:属性和方法组成 }

    对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。基本定义如下:

 类名  对象名 = new 类名();

   

综合案例代码如下:

public class Student {
    
    //成员变量
    public String name;
    public int age;
    public int id;
    
    public void say(){
        
        int score = 88;//局部变量
        
        System.out.println("姓名:" + name);
        System.out.println("年龄:" + age);
        System.out.println("班级:" + id);
    }
    
    public static void main(String[] args) {
        
        //实例化对象过程
        Student xixi = new Student();
        
        //成员变量赋值操作
        xixi.name = "zhangsan";
        xixi.age = 24;
        xixi.id = 101;
        
        //调用成员方法
        xixi.say();
        
    }
}

 执行结果如下:

上述案例中,我们可以简单的了解到类的定义过程、对象的实例化过程、成员变量和成员方法的定义过程、调用过程。程序中say()方法中我们也定义了一个局部变量,通过比较得知,局部变量使用前必须初始化,而成员变量会默认初始化,初始化的值名为该类型的默认值。

 成员变量默认值如下图所示:

 

三、内存分析

    通过内存分析,我们可以很清楚的明白java程序的执行思路,如下图所示:

    

   栈:1.  每个线程私有,不能实现线程间的共享 2.  局部变量放置于栈中。3.  栈是由系统自动分配,速度快!栈是一个连续的内存空间!

   堆:1.  放置new出来的对象!2.  堆是一个不连续的内存空间,分配灵活,速度慢!

   方法区:1.  被所有线程共享!2.  用来存放程序中永远是不变或唯一的内容。(类代码信息、静态变量、字符串常量)

 

 四、构造器

 

构造方法主要用来创建类的实例化对象,可以完成创建实例化对象时成员变量的初始化工作。

声明格式:  构造方法修饰词列表   类名(方法参数列表){

           //内容
}
1.构造方法名称必须与类名一致
2.构造方法无返回值,关键字void也不能加入,加入之后就变成普通方法了。
3.任何类都有构造方法,如果没有显示的定义,则系统会为该类定义一个默认的构造器,这个构造器不含任何参数。                                                             
posted @ 2017-04-07 19:44  OMAF  阅读(281)  评论(0)    收藏  举报