Java教程

类与对象、构造器、封装、内存划分详解

本文主要是介绍类与对象、构造器、封装、内存划分详解,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

文章目录

  • 一.面向对象
    • 1.1概述
    • 1.2面向过程和面向对象
    • 1.3类和对象的区别
    • 1.4实例化过程/创建对象的过程
    • 1.5 对象的使用和特征
    • 1.6常见异常
    • 1.7 javaBean
  • 二.构造方法
    • 2.1概述
    • 2.2构造方法和普通方法
  • 三.this关键字

一.面向对象

1.1概述

面向对象(Object Oriented)是一种思想,将数据和方法作为整体来看待,从更高的层次来进行系统建模,更贴近事物的自然运行模式。

1.2面向过程和面向对象

面向过程

侧重步骤

面向对象

侧重模块(炒饭和盖饭)

优点:维护简单,可拓展性,可重用性,降低耦合

1.3类和对象的区别

类是某一类对象的抽象,对象才是一个具体的实体.比如人就是一个类,那张三这个人就是对象,是一个具体的实体

类就是一种数据结构,而对象是某种类型的数据结构在内存中的具体表示

类定义标准和模板,而对象就是符合这个标准的个体

什么时候使用静态变量,什么时候使用成员变量

​ 静态变量是类级别的,对象无关,是所有对象都一致的

​ 成员变量是对象级别的

1.4实例化过程/创建对象的过程

1 对应类加载入静态区

2 new 堆内存创建内存空间,把类中的成员属性放到内存空间中

3 执行构造方法,对堆内存空间中的属性初始化,执行完弹栈

4 把堆内存地址返回调用处

每个对象空间分为3块

​ 1 数据区域 成员变量

​ 2 头部 hash值

​ 3 类型: 静态区类文件的空间引用

1.5 对象的使用和特征

JVM特性

跨平台,多线程,自动垃圾回收,面向对象

垃圾:没有更多的引用指向

面向对象特性

继承性,封装性,多态性,抽象

对象的使用方法

1 创建对象

语法: 类名 对象名 = new 类名();

2 调用对象的属性和方法

语法: 对象名.属性名 对象名.方法名

1.6常见异常

空指针异常

空指针是运行时异常,编译是不报错,一般因为程序员粗心导致

System.out.println();中谁可能报空指针异常

分析:

System是类,不会报空指针异常,println()是方法不会报,所有只有可能是out是空

1.7 javaBean

javaBean就是实体类

一个标准的javaBean包含

一个无参的构造方法,私有的成员变量,set和get方法,且必须是一个公共类

二.构造方法

2.1概述

编译器的功能:

​ 把java文件编译成.class文件

​ 简称语法结构是否合法

​ 帮我们把不规范的代码补全

构造方法:

​ 语法: [权限修饰符] 类名(参数列表){方法体}

​ 作用:创建当前类的实例化对象,并初始化成员属性

注意:如果我们没有定义构造方法则默认有一个公共的无参构造(public 类名(){})一旦我们指定了构造方法,则默认的无参构造就没有了,所以一般我们需要指定构造方法的时候,要需要写一个无参构造

构造方法重载

​ 可以根据需求,编写多个构造方法,方法名相同,参数列表不同(类型,数量)

2.2构造方法和普通方法

构造和成员方法同名,因为构造方法没有返回值类型

三.this关键字

this是每个对象中保存自身内存地址的一个引用类型的成员变量

this就表示这个对象

只能出现在成员方法和构造方法中,不能出现在静态方法中

作用:

​ 1.用在成员方法/构造方法中,用来区分同名的成员变量和局部变量, this.xxx

​ 区分静态变量和局部变量:类名

​ 区分成员变量和局部变量:this

​ 2.用在构造方法中,重载调用当前类的其他构造方法

​ this(参数); 必须写在构造方法的第一行

​ 例子:

class MyDate{
    int year;
    int month;
    int day;
    public Mydate(){
        this.(year,month,day)
    }
    public MydateI(int year,int month,int day){
        this.year = year;
        this.month = month;
        this.day = day;
    }
}

注意:谁调用的这个方法.这个this就是谁,this是个成员变量

这篇关于类与对象、构造器、封装、内存划分详解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!