Java之面向对象上

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

面向对象

概述:

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

面向对象特点

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

封装:

概述

类:

概述:

所有的类都默认继承一个类: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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第四章 面向对象 面向对象思想 面向对象思想的引入前面我们讲过数组,当有多个数组都需要遍历时,我们可以将遍历的代码...
    chongsheng阅读 596评论 0 0
  • 面向对象笔记 一、 对象在内存中的存放方法以及被调用过程 class文件首先被加载到方法区中的class文件内容区...
    VictorBXv阅读 487评论 0 2
  • 面向对象程序设计概述 面向对象程序设计(简称OOP)是当今主流的程序设计范型,它已经取代了传统的“结构化”过程化程...
    Steven1997阅读 917评论 0 0
  • 二、面向对象 1、面试对象思想: (1)概述:面向对象对相对于面向过程而言的,面向过程强调的是功能,面向对象强调的...
    有_味阅读 469评论 0 1
  • 第一种,可欲善,看到善的行为觉得很好。 第二种,诸己之信,看到善的行为就学习,学习了自己去实践体会。 第三种,充实...
    张金钊阅读 754评论 0 1