面向对象在java中非常的重要,下面我们来一起了解一下面向对象吧
文章目录
目录
前言
之前学习java有点杂乱无章,很多笔记也没有整理好,所以这几天从面向对象开始往后深入学习一下,并做下笔记,也希望能帮助到刚入java的小伙伴。
一、什么是面向对象?
可以理解为我们用程序抽象的描述现实世界的事物。
二、面向对象基本组成
1.类和对象
1.1 什么是类?
类就是一类具有共同特征与行为的事物的集合。
比如说动物类,每个动物都有一些相同的特征,比如都有腿,有头,比如都有相同的行为,可以跑。
1.2 什么是对象?
对象就是一个具体存在的个体,比如说老虎,狮子,他们就是一个具体的个体。
1.3 类与对象之间的关系
类是一种抽象的,概念的,它所代表的是一类事物的集合。
而对象是具体的,存在的,它所代表的是一个具体的事物。
类是对象的模板,就像上面提到过的动物类,对象是类的一个实例,比如老虎就是动物类的一个具体例子。
1.3.1 定义一个类
class animal{//动物类
String name;//姓名
String gender;//性别
}
1.3.2 创建一个对象
animal cat=new animal();
1.3.3 类与对象的内存分布
Java内存区域
栈:存放局部变量;
堆:手动申请的空间;
方法区:常量池,类加载信息。
类和对象在初始化时,首先先加载类的相关信息,然后给对象在堆中申请一个空间,栈中存放cat局部变量,变量中保存对象的引用地址。
1.4 对象的基本组成
1.4.1 属性
属性也就是事物本身的特征,小明身高180cm,小红身高160cm,那么身高就是一个特征。
- 属性可以是基本数据类型,也可以是引用数据类型。
- 在初始化时,属性会按照指定的数据类型的初始值来进行默认初始化。比如int类型,初始化默认值为0。
如上类中,所定义的name,gender就是一个属性。
1.4.2 方法
方法就是事物的行为,比如跑,跳就是一个行为。
public void run(){
System.out.println("我可以跑");
}
1.4.3 为什么需要方法 ?
以洗衣机举例子,洗衣机的内部被外面的壳所包裹,我们无法看到内部的构造和细节,只给我们暴露了几个按钮,当我们想洗衣服时,只需要将衣服倒进洗衣桶,设定时间点击按钮就可以自动洗衣服,我们不需要关心到底它是怎么运行的,我们只需要等待衣服洗好,而且,洗衣机可以无限使用,只要有脏衣服,我就放进去洗,而不用说每用一次,这个洗衣机就不能用了,我就又换个洗衣机,它可以重复使用,变成一种很方便的工具。
这也是方法所存在的意义,我们只需要封装好指定的功能,供别人使用,而别人也不用关心内部如何实现,只用在合适的时候调用,就不必每次都去写重复的代码了。
1.4.4 方法内存分布机制
方法执行时,会单独的在栈中创建一个空间,因此每个方法中的变量都是独享的,等到方法全部执行完毕,就会释放栈空间,执行下一个方法。
1.4.5 方法传参机制
方法的参数可以是任意类型。方法的参数也叫形参,调用方法所传递的参数叫实参。
public void run(String name){
System.out.println(name+":跑");
}
如果方法的参数是基本类型,则传递的是值。
如果方法的参数是引用类型,则传递的是地址。
我们在方法中修改基本类型形参的值不会影响到实参的值。
而如果修改引用类型形参的值则会影响到实参的值。因为实参将地址赋值给了形参,那么形参和实参共享一个地址,因此对于形参的修改会影响到实参。
public static void main(String[] args){
animal cat;
run(cat);
System.out.println(cat.name);
}
public static void run(animal cat){
cat=new animal();
cat.name="小黄";//引用类型的形参会改变实参的值
}
class animal{
String name;
String age;
}