#Java是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间交互。
面向过程
注重的是过程,在整个过程中都会涉及行为,就是功能。
面向对象的概念
注重的是对象,也就是参与过程所涉及到的主体,是通过逻辑将一个个功能实现链接起来。
1.面向对象是思考问题的一种方式,是一种思想。
2.类就是一类对象的统称,对象就是这一类具体化的实例。
3.面向对象的好处:将复杂的事情变简单,只要面对一个对象就行。
类和类的实例化
类相当于以恶搞模板,对象是有模板产生的样本,一个类,可以产生无数个对象。
基本语法
示例:
class为定义类关键字,Person为类的名字,{}中为类的主体。
类中的元素称为成员属性。类中的函数为成员方法。
person 是一个变量,不是地址,只不过这个变量里面存储的是地址,所哟,这个变量,也叫做引用。
类的实例化
用类类型创建对象的过程,称为实例化
1.类只是一个模型一样东西,限定了类有哪些成员。
2.一个类可以实例化多个对象,实例化的对象,占用实际的物理空间,存储类成员变量。
3.static定义的变量是类变量,属于类的,不可以在方法中定义。
4.普通方法中可以调用静态方法,静态方法中不可以调用普通方法,因为静态方法不依赖于对象,普通方法依赖对象,所以可以调用静态方法。普通方法也不可以定义静态变量。
static关键字
a.修饰属性
b.修饰方法
#静态方法属于类,而不属于对象
#可以直接调用静态方法,无需创建类的实例。
#静态方法可以访问静态数据成员,且可以更改静态数据成员的值。
#静态方法和实例无关,和类有关。main方法为static方法。
c.代码块
d.修饰类
封装(private)
封装的好处:更安全。
private/public这两个关键字表示“访问权限控制”。
被public修饰的成员变量或者成员方法可以直接被类的调用者使用。
被private修饰的成员变量或者成员方法不能被类的调用者使用。
private不仅能修饰字段,还能修饰方法。
构造方法
一个类至少有一个构造方法,如果没有实现任何的构造方法,编译器会帮我们默认生成一个不带参数的构造方法。
如果当前类有其他的构造方法,那么编译器就不会帮我们生成不带参数的构造方法。
构造方法之前可以构成重载。
this关键字
1.this.data 调用当前对象的属性。
2.this.func() 调用当前对象的方法。
3.this() 调用当前对象的其他构造方法。
代码块
本地代码块
实例代码块
静态代码块 (优先被执行,且只会被执行一次,不用实例化也可以被执行。)
同步代码块
匿名对象(只使用一次)