• linkin大话面向对象--类和对象


    我们每天在撸码,那么我们在敲什么东西呢?明显的我们在写类,写一个类,写一个接口,写某个接口里面写一些属性,在某个类里面写一个方法,然后以一个对象调用方法,对于j2ee来讲的话,可能还会写一些jsp,静态的html,还有不可避免的被大家一直诟病的xml配置文件。具体的java语言规范,以后我会专门做整理,在这里我只关注java面向对象。


    要说面向对象,核心就是两个东西:类和对象 。


    那么什么是类?自定义数据类型,类是某一批对象的抽象,所有的类都是引用数据类型。

    什么是对象?具体存在的实体 。

    2者有什么关联呢?以下解释个人觉得已经很透彻了:定义一个类是为了重复创建该类的实例,同一个类的多个实例具有共同的特征,而类就是定义了这些实例的共同的特征。类不是一种具体的存在,实例才是一种真实的存在。以下说法就很清楚了:你不是人这个类,我也不是人这个类,我们都只是人的实例。


    [修饰符]  class 类名 [extends  Superclassname     implements  interface {,interface } ] { 
              零到多个构造器定义。。。
     零到多个属性。。。
     零到多个方法。。。

       


    对于一个类来讲,有3个成员:构造器,属性,方法,下面一一来介绍这3个成员:

        属性:

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

        上面的数据类型可以是8种基本类型,也可以是引用类型。玩j2ee的话,我个人觉得在定义一个类的时候,基本不会用到基本类型的数据类型,一般都是引用类型和包装类。其中的修饰符可以是public等限定符,final,abstract。

        

    方法:

        [修饰符] 方法返回值类型 方法名(形参)     { 
    零到多条可执行性语句。。。
           (本地的native及抽象的方法没有体部分) 

        } ;

         有返回值声明返回值类型,且方法的最终的返回类型要和声明的一致,要是没有返回体,声明为void。形参可以为多个,多组参数之间用英语“,”隔开


        构造器:
        [修饰符] 构造器名(形参){ 
            零到多条可执行性语句。。。

      } ;

     java语法规定:构造器是一个特殊的方法,构造隐身返回该类的实例,无需定义返回值类型。


    以下代码定义了一个Linkin类:

    <strong>public class Linkin {
    
        //定义2个属性:name,age。养成良好的习惯,在写一个类的时候,属性后面加属性备注
        private String name;//姓名
        private Integer age;//年龄
        
        //同样的养成良好的习惯,默认的构造器不管使用不使用,都写上。
        public Linkin(){
            
        }
        
        public Linkin(String name, Integer age) {
            super();
            this.name = name;
            this.age = age;
        }
    
        //定义一个方法
        public void sayHi(){
            System.out.println("要知足,要平凡,要感恩,结了婚的人,不可再任意强求,");
        }
        
    }
    </strong>

    看一行代码: Person p = new Person();上行代码实际产生2个东西,一个是p变量,一个是person对象,并将这个Person对象赋给p变量。


    和数组类型一样,类也是一种引用数据类型。上面程序定义的Person类型的变量实际上是一个引用,它被存放在栈内存里,指向实际的Person对

    象,而真正的Person对象则存放在堆内存中。以下是示意图:



    java里面不存在指针,关于java里面的引用,记住下面一句话:


    和数组一样,当程序访问引用变量的属性和方法时,实际上是访问该引用变量所引用的对象的属性和方法。如果希望垃圾回收机制回收某个对象,

    只需切断该对象的所有的引用变量和它之间的关系即可,也就是把这些引用变量赋值为null。


    最后:要理解下面2点。

            

    •  在java中对面向对象(OO)的要求
        1.对象是客观存在的,万物皆对象。        (注:看不见的对象并不表示该对象不存在,比如说事件);
        2.简单性:采用面向对象方法可以使系统各部分各司其职各尽所能。
        3.复用性:对象的功能越简单其可重用性越高。
        4.弱耦合性:各司其职各尽所能。
        5.高内聚性:一个对象独立完成一个功能的能力
        6.类是一类事务的共性,是人类主观认识的一种抽象,是对象的模板。


    • 面向过程与面向对象的对比
        面向过程:先有算法,后有数据结构。先考虑怎么做。
        面向对象:先有数据结构,后有算法。先考虑用什么做。






  • 相关阅读:
    前端之页面标签的图标修改
    分页, 解析器, 渲染器
    DRF的认证,频率,权限
    视图组件,路由组件,版本控制
    序列化组件
    Restful规范
    docker大全集
    哨兵和docker容器
    项目发布须知
    Linux之nginx
  • 原文地址:https://www.cnblogs.com/LinkinPark/p/5233177.html
Copyright © 2020-2023  润新知