Java面向对象(一)面向对象简介和初步 了解
一、面向对象简介
面向对象是相对面向过程而言的。
面向过程注重的是过程,强调的是动作;
面向对象注重的是对象,只要找到了对应的对象,那么就自然拥有了对象所具有的一切功能
面向对象是基于面向过程的
面向对象一定优于面向过程吗?
当场景比较复杂的时候,建议使用面向对象;当事物比较简单的时候,建议使用面向过程
二、类 和对象的关系
通过对一类事物的共有的特征和行为进行抽取,将特征抽取为属性,将行为抽取为方法,这样就形成了一个类---类是对象的概括。
通过new关键字来创建对应类的实例/对象---对象是类的具体
通
三、成员变量和局部变量
区别:
1. 定义位置不同:成员变量定义在类内方法外;局部变量定义在方法或语句内。
2. 存储位置不同:成员变量存储在堆内存中,并在堆内存中自动赋予 初始值;局部变量存储在栈内存中,需要手动初始化。
3. 作用域不同:成员变量作用在整个类内;局部变量作用在定义的方法或语句内。
4. 生命周期不同:成员变量在对象创建时产生,对象的销毁而销毁,对象用完不一定立即回收,而是在不定时的某个时刻被回收;局部变量在语句或方法被执行到时创建,在语句或方法执行完后立即销毁。
四、构造函数
构造函数是在类中与类同名且没有返回值类型的函数。 (注意:没有返回值类型 ,而不是没有返回值,没有返回值用void定义)
构造函数可以被重载。
如果类中没有构造函数,则JVM会默认提供一个无参构造函数,当用户自定义有参构造函数后,JVM将不会提供无参构造,需要用户显示定义。
构造函数中可以有return语句,用于回避掉一些不否和实际逻辑的问题。
任何一个类都有构造函数。
五、this关键字
哪个对象处于活跃状态,则this代表哪个对象,this可以认为是一个虚拟对象,代表了当前对象的引用。
注意:
java中所有非静态的属性和方法都必须通过对象来调用。
this()语句 :用于在本类的构造函数中调用其他的构造函数。,但是必须放在该构造函数的首行。
六、匿名对象
没有名字的对象称之为匿名对象 --- 用于只调用一次的时候。
匿名对象可以作为参数传递。
七、局部代码块
在函数或语句内部用{ }括起来的代码块称之为局部代码块。
作用:
限制局部变量的作用范围和生命周期,提高栈内存的利用率。
八、构造代码块|初始化代码块
定义在类内方法外的代码块。
用于类内属性的初始化,会先于构造函数执行。