美文网首页
Java之面向对象上

Java之面向对象上

作者: sexyhair | 来源:发表于2018-04-22 16:21 被阅读0次

    此为个人学习笔记,如有错误,欢迎指教

    面向对象

    概述:

    面向对象开发就是不断的创造对象,使用对象,指挥对象做事情;
    面向对象设计就是在管理和维护对象之间的关系
    

    面向对象特点

    封装:类
    继承:父类(抽象类)
    多态:接口
    

    封装:

    概述

    类:

    概述:

    所有的类都默认继承一个类:Object
    

    类的内容:

    成员变量:是该事物的呆在特征描述
    构造方法
    成员方法:改事物的内在功能描述
    
    成员变量
    定义在类中的变量
    

    局部变量、成员变量的区别?

    局部变量:定义方法中或者方法声明上的变量
    A:定义的位置不同
        成员变量:定义在类中
        局部变量:定义在方法内或者方法声明(参数)上
    B:内存中的位置
        成员变量:堆内存
        局部变量:栈内存(方法在栈中执行,局部变量又定义在栈中)
    C:声明周期不同
        成员变量:定义在类中,随着类对象的创建而存在,随着类对象的消失而消失
        局部变量:定义在方法中,随着方法的调用而存在,随着方法的执行完毕而消失
    D:初始化值不同
        成员变量:在堆内存中,堆特点,给默认初始值
        局部变量:必须定义和赋值才可以
    E:当成员变量名称和局部变量名称相同时,采取就近原则,在方法内部使用的是局部变量;
    

    成员变量、静态变量的区别?

    静态变量:使用static修饰的变量
    A:调用不同:
        成员变量:定义在类中,对象调用
        静态变量:类名调用或者对象调用
    B:内存位置不同:
        成员变量:堆内存中
        静态变量:方法区的静态区
    C:声明周期不同:
        成员变量:随着类对象的创建而存在,随着类对象的消失而消失
        静态变量:随着类的加载而加载,随着类的消失而消失
    
    构造方法

    作用:给对象的数据进行初始化的
    说明:若你不提供构造方法,系统会给类默认的构造方法(无参的)
    如果你写了构造方法,系统就不给默认的构造了
    构造方法可以重载

    格式:
    修饰符 方法名(与类型相同)(参数类型 参数名,参数类型,参数名){}

    成员方法:
    除了构造方法就是成员方法了
    

    类的初始化过程:

    代码:

    /**
     * 成员变量与构造方法
     */
    public class Student2 {
        // 成员变量
        String name = "name的显示初始化值";
        int age = 1;
        String sex = "sex的显示初始化值";
    
        public void setName() {
            this.name = "通过构造给name赋值";
        }
    }
    public class ClassDemo1 {
        public static void main(String[] args) {
            Student2 stu = new Student2();
        }
    }
    

    在内存中的执行过程:

    类的初始化过程
    ##类的初始化过程:
      加载class文件
      在栈中开辟空间
      在堆中申请(new)空间
      成员变量的初始化的默认初始化
      成员变量的初始化的显示初始化
      构造方法初始化
      给对象地址值
    

    创建对象并赋值在内存中的过程:

        /**
           *创建对象并赋值对应的代码
           *成员变量与成员方法
           */
    public class ClassDemo1 {
        public static void main(String[] args) {
            Student stu = new Student();
            System.out.println(stu.name);//null
            System.out.println(stu.age);//0
            System.out.println(stu.sex);//null
            stu.name = "你好";
            System.out.println(stu.name);//你好
            stu.setName("你好11");
            System.out.println(stu.name);//你好11
        }
    }
    
    创建对象并赋值

    说明:图中第三步在内存中详细的过程即是 “类的初始化过程”

    关于匿名对象

    代码块

    A.局部代码块:
        用于限定变量的声明周期,及早释放,提高内存使用率
    B.构造代码块
        把多个构造方法中相同的代码可以放到这里,在构造方法执行前执行
    C.静态代码块
        对类的数据进行初始化,仅仅执行一次
    

    面向对象开发就是指挥对象做事情,有多个对象,每个对象都负责不同的分类的事情;
    对象内就封装了类的事情的相关的方法;
    为了方便查找使用哪个对象呢,把跟这个对象
    而对象就是类的实例,
    类是封装了方法,
    方法又是完成特定功能

    假如一个家公司,有商务部,财务部,技术部,行政部,人事部;
    面向对象开发就是 公司的最高指挥者,指挥 商务部对象,财务部对象,技术部对象,行政部对象,人事部对象做事情,有一件任务过来,发现是属于财务部的事情,就指挥财务部干活,把结果给最高指挥者;指挥者看完之后发现还需要技术部配合,那么就再把此任务分配给技术部;每个部门呢又有最高的指挥者,再循环分配任务,知道某个具体操作上;假如部门的最高领导者离职了,换了下一个,那也不会影响这个过程;

    参考书籍视频:
    -学习视频:黑马程序员_Java基础视频-深入浅出精华版
    -阅读书籍:Java核心技术 卷I(机械工业出版社)
              API1.8

    相关文章

      网友评论

          本文标题:Java之面向对象上

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