美文网首页
4.2-全栈Java笔记:对象和类的概念及定义

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

作者: 全栈JAVA笔记 | 来源:发表于2017-06-29 09:58 被阅读62次

    对象和类的概念

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

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

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

    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使用默认的值对其初始化。  

    表1 成员变量的默认值

    数据类型

    默认值

    数值型

    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; //品牌

    }

    执行结果:

    对应的UML图如下:


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

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

    A-Java入门阶段

    B-数据库从入门到精通

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

    D-J2EE从了解到实战

    E-Java高级框架精解

    F-Linux和Hadoop 

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/gtcmcxtx.html