Java干货学习第七天-类与对象,内存划分,构造器

面向对象

概述

面向对象是把数据和方法组织为一个整体看待,从更高层次来进行系统建模,比起面向过程,它无疑更加贴近事物的自然运行。

面向对象和面向过程

面向过程:侧重步骤
面向对象:侧重对象
两者都是解决问题的思路,只是侧重点不同,面向对象的基础也是面向过程,只是面向对象把具体的细节给封装了,外界无法获取。
比起面向过程,面向对象无疑更容易维护,扩展性更好,重用性更佳。

构造器

构造器:创建对象,初始化成员变量
如果一个类中没有显示声明一个构造方法,则默认有一个公共的无参构造;
如果我们定义了构造方法,不管定义是有参还是无参,则不会再有默认的无参构造;
构造方法重载:方法名相同,参数列表不同;
语法:权限修饰符 类名(参数列表){方法体};
成员方法名可以和类型相同;
区分成员方法和构造放啊,主要看返回值,构造方法void都没有;

类和对象

对象

从代码的角度看,new的实例化某一个类的实例,用来保存特有的数据;
数据角度,封装数据和逻辑的一种方式;
现实生活中,对象就是具体的某个事物,一切皆对象;
设计角度:从一个实际的实体抽象某些属性的一种实体来表示;

概念:是我们在思想上对某个东西,或者某一类东西的唯一标识;
描述某一类的特征;
是我们对客观事物描述的一个标准一个模板;
我们在抽离概念的时候,就能建立相关事物的类,一定是通过它的属性来形成这个概念,通过这些属性,可以形成对应的类,通过不同的属性值形成不同的实体(对象),通过不同的属性形成不同的类,不同的属性值形成不同的对象。

实例化

Student s1 = new Student();
载入对应的student类到静态区;
new会在堆内存空间创建对象空间,并把类中的成员属性复制进去;
调用构造方法,创建对象并初始化内存空间中的数据;
返回内存空间地址,赋值给变量s1;在这里插入图片描述

类的构成

类中可以有:
成员变量:类体中没有static修饰的变量,是每个对象的共有属性,保存在堆内存;
静态变量:类体中加static修饰的变量,是每个对象共有的属性和值,保存在静态区;
局部变量:方法内部的变量,如果多个方法需要访问相同的属性,提升为静态/成员变量即可;
静态方法:类级别的,通过类名访问;
成员方法:对象几倍,每个对象的方法;
构造方法:用于创建类的实例对象的方法;
main入口方法:JVM自动调用,程序入口,单入口;
抽象方法:没有方法体,连大括号都没有,需要使用abstract修饰;
静态语句块:没有名字的一个{},需要加static;
动态语句块:没有名字的一个{},不需要加static;
this:表示当前对象,相当于我一样,this不能出现在静态方法中;
super:表示父类;

常见异常

java.lang.NullPointerException空指针异常,使用null值,访问成员属性的时候,就会报空指针异常;

构造方法重载

根据需求对构造方法进行重载;方法名相同,但是参数的个数或者种类不同;

JavaBean

变量私有化;
有对应的getter和setter方法,用于操作变量;
无参构造和有参构造;
toString,equals,hashCode等方法覆写;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卑微-程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值