Java基础-面向对象


在学习Java的过程中,面向对象的思维是贯穿整个Java体系的。要想透彻学习Java,就必须理解并且学习这个面向对象的思维,可谓是Java语言的核心和基础。根据视频学习中的知识点和对面向对象的理解,总结出以下一些内容。


ps.在学习面向对象之前,先来学习一下在Java中,参数传递的特点:

Java中的参数传递:在Java中,只有值传递;对于基础数据类型,传递的是实际参数的值,并不是实际参数本身;对于引用数据类型,传递的是地址值。

那么,在这样的规则下,就会出现以下两种情况:

A:基础数据类型,形式参数的改变,不会影响实际参数的值

B:引用数据类型,形式参数的改变,直接影响实际参数的值,这里相当于两个引用同时指向同一个对象。


一、理解面向对象

要想理解面向对象,首先要理解什么是面向过程。因为面向对象是相对于面向过程而言的。

面向过程:是以函数为基础,强调的是过程还有函数能实现什么样的功能。

面向对象:是以对象为基础,强调的是该对象所具有的属性和行为,还有该对象能实现的功能。

那么,面向对象都有哪些特点?

A:面向对象更符合人们的思考习惯;

B:面向对象将复杂的问题简单化;

C:面向对象使程序员从执行者转变为指挥者;


既然学习了面向对象,那么来谈谈什么是面向对象吧(公司一般都会面试到哦)

面向对象,是相对面向过程而言的。面向过程也是一种编程思想,是以函数为基础,强调的是过程和函数能实现的功能;而面向对象思想,是以对象为基础,强调的是对象所具有的属性和行为,以及对象能实现的功能。

面向对象有三大特点:

1、面向对象更符合人们的思考习惯;

2、面向对象将复杂的问题简单化;

3、面向对象使程序员从执行者转换成指挥者。

举个例子:就拿我们要烧水喝这件事来举例。

用面向对象思想来思考这件事:1、我们要去取水;2、然后去烧水;3、要计算烧水的时间,不要干烧;4、待水烧好,我们去盛水喝。。要完成喝水这件事,我们最少要通过以上4个步骤来完成。

然而用面向对象思想来重新思考这件事:我们要喝水,我只需要找一个或者创建一个对象来帮我们来完成烧水的过程,我们只管去盛烧好的水来喝。

步骤:1、找到一个饮水机,调用饮水机的烧水功能;2、我们去取烧开的水喝

那么在面向对象思想里,我们要完成这件事,只需要做这两个步骤就可以。至于在烧水过程中,饮水机是如何运作的,我们不需要去知道,因为这些行为,饮水机内部最清楚如何实现,我们只管去调用功能,然后使用实现功能后的结果就行。


在现实生活中,如果用面向对象的思维来描述一个事件?

例:将一个大象放进冰箱

A:分析该需求中有哪些对象(名词提取法)

B:分析每个对象都能做什么(动词提取法)

C:分析各个对象之间的关系

D:分析完A后,把每一个对象都单独写成一个类。每个对象能做什么,那么就在该类中定义出对应的方法。以后在main()方法中,只有对象调用方法,没有逻辑语句。


二、类与对象的关系


以图为例:

类就相当于汽车的图纸

对象就相当于根据图纸造出来的每一个实实在在存在的汽车个体。

在Java中,类、对象、属性、行为学术词的解析:

A:类——是属性和行为的集合,是一个抽象的概念

B:对象——是该类中实实在在的一个个体,是类的具体实现

C:属性——就是成员变量(可以描述一个类的属性,不能描述一个特有的属性的,不应该定义来成员变量位置上)

D:行为——就是成员方法(能描述一个类应该具备的行为)


那么,该如何来描述一个学生类?

A:分析该事物所具有的属性和行为学生这类事物应该具有年龄属性,姓名属性等等;还应该具备学习的行为;

B:将这类属性定义成学生这类事物的成员变量

C:将行为定义成学生这类事物的成员方法


代码体现如下:

public class Student {
	//定义学生的属性
	String name;
	int age;
	
	//定义学生应该具备的行为
	public void study(){
		System.out.println("好好学习!");
	}
}
如何使用学生类?

public class StudentTest{
	public static void main(String[] args) {
		//创建Student对象
		Student s = new Student();
		s.name="小苍";
		s.age=20;
		s.study();
		
	}
}



三、什么时候将变量定义成成员变量
应用场景:
成员变量实际上就是该类的属性,只有能用于描述该类的属性,才能定义成变量,否则一律定义成局部变量
成员变量和局部变量的区别:(定义位置、初始化值、存储位置)
定义位置:成员变量定义在类中方法外;局部变量定义在方法中
初始化值:成员变量有默认的初始化值;局部变量没有默认初始化值
内存中存储位置:成员变量存储在堆内存中,随着类的存在而存在;局部变量存储在栈内存中,依托于方法而存在
变量的使用规则:
先在局部位置上找,如果有则使用,否则就在成员位置上找,有则使用,如果还是没有,那么就会在父类中寻找,如果父类中也没有定义该变量,编译会报错。


四、匿名对象

概述:匿名对象就是指没有名字的对象。
应用场景:
1、当对象只使用一次,或者对对象中的方法只调用一次
2、匿名对象可以作为实际参数进行传递
ps 方法中的形式参数,不仅可以传入4类8种的基本数据类型,还可以传入引用数据类型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值