4.2-全栈Java笔记:对象和类的概念及定义



对象和类的概念

我们人认识世界,其实就是面向对象的。大家眼里都是一个个对象,要不怎么老说搞对象搞对象啊。比如现在让大家认识一下“天使”这个新事物,天使大家没见过吧,怎么样认识呢?最好的办法就是,给你们面前摆4个天使,带翅膀的美女,让大家看,看完以后,即使我不说,大家下一次是不是就都认识天使了。4.2-全栈Java笔记:对象和类的概念及定义

但是,看完10个天使后,我们总要总结一下,什么样的东东才算天使?天使是无数的,总有没见过的!所以必须总结抽象,便于认识未知事物!总结的过程就是抽象的过程。


小时候,我们学自然数时怎么定义的?像1234…这样的数就叫做自然数。 通过抽象,我们发现天使有这样一下特征:

1.  带翅膀(带翅膀不一定是天使,还可能是鸟人)

2.  女孩(天使掉下来脸着地,也是天使!)

3.  善良

4.  头上有光环

那么通过这4个具体的天使,我们进行抽象,抽象出了天使的特征,我们也可以归纳一个天使类。 通过这个过程,类就是对象的抽象。

 

类可以看做是一个模版,或者图纸,系统根据类的定义来造出对象。我们要造一个汽车,怎么样造?类就是这个图纸,规定了汽车的详细信息,然后根据图纸将汽车造出来。

 

类:我们叫做class 

对象:我们叫做Object,instance(实例)

以后我们说某个类的对象,某个类的实例。是一样的意思。

总结

1)对象:是具体的事物

2)类:是对对象的抽象;类可以看做创建对象的模板

3)类可以看成一类对象的模板,对象可以看成该类的一个具体实例。

4)类是用于描述同一类形的对象的一个抽象的概念,类中定义了这一类对象所应具有的属性、方法。

类和对象初步

第一个类的定义

【示例1】类的定义方式

public class   Car{   //每一个源文件必须有且只有一个public   class,并且类名和文件名保持一致!

}

class   Tyre {   //一个java文件可以同时定义多个class

}

class   Engine {

}

class Seat   {

}

上面的类定义好后,没有任何的其他信息,就跟我们拿到一张张图纸,但是纸上没有任何信息,这是一个空类,没有任何实际意义。所以,我们需要定义类的具体信息。对于一个类来说,一般有三种常见的成员:属性field、方法method、构造器constructor。这三种成员都可以定义零个或多个。

【示例2】简单的学生类编写

public class   SxtStu {

    //属性(成员变量)

    int id;

    String sname;

    int age;

   

    //方法

    void   study(){

       System.out.println("我正在学习!");

    }

   

    //构造方法

    SxtStu(){

      

    }

}

 属性(field,或者叫成员变量)

属性用于定义该类或该类对象包含的数据或者说静态属性。属性作用范围是整个类体。

在定义成员变量时可以对其初始化,如果不对其初始化,Java使用默认的值对其初始化。  


成员变量的默认值

数据类型

默认值

数值型

0    0.0

字符型

'\u0000'

布尔型

false

所有引用类型

null

属性定义格式:

[修饰符]  属性类型  属性名 = [默认值] ;

 方法

方法用于定义该类或该类的实例的行为特征和功能实现。 方法是类和对象行为特征的抽象。方法很类似于面向过程中的函数。面向过程中,函数是最基本单位,整个程序由一个个函数调用组成。面向对象中,整个程序的基本单位是类,方法是从属于类和对象的。


方法定义格式:

[修饰符]  方法返回值类型    方法名(形参列表) {

  //   n条语句

}

 一个典型类的定义和UML

public class   SxtStu {

    // field

    int id;

    String sname;

    int age;

    Computer comp;

 

    void   study() {

       System.out.println("我正在学习!使用我们的电脑,"+comp.brand);

    }

 

    SxtStu() {

    }

 

    public static void   main(String[] args) {

       SxtStu stu1 = new   SxtStu();

       stu1.sname = "张三";

        Computer comp1 = new   Computer();

        comp1.brand = "联想";

 

        stu1.comp =   comp1;

       stu1.study();

    }

}

 

class   Computer {

    String brand//品牌

}

 

执行结果:

4.2-全栈Java笔记:对象和类的概念及定义

对应的UML图如下:

4.2-全栈Java笔记:对象和类的概念及定义



「全栈Java笔记」是一部能帮大家从零到一成长为全栈Java工程师系列笔记。笔者江湖人称 Mr. G,10年Java研发经验,曾在神州数码、航天院某所研发中心从事软件设计及研发工作,从小白逐渐做到工程师、高级工程师、架构师。精通Java平台软件开发,精通JAVAEE,熟悉各种流行开发框架。


笔记包含从浅入深的六大部分:

A-Java入门阶段

B-数据库从入门到精通

C-手刃移动前端和Web前端

D-J2EE从了解到实战

E-Java高级框架精解

F-Linux和Hadoop