面向对象编程的初步:
面向过程 | 面向对象 | |
区别 | 事物比较简单,可以用线性的思维去解决 | 事物比较复杂,使用简单的线性思维无法解决 |
共同点 | 面向过程和面向对象都是解决实际问题的一种思维方式 二者相辅相成,并不是对立的。 解决复杂问题,通过面向对象方式便于我们从宏观上把握事物之间 复杂的关系、方便我们分析整个系统;具体到微观操作,仍然使用 面向过程方式来处理 |
对象和类的概念:
对象:是具体的事物
类:是对对象的
局部变量和成员变量
区别:声明位置不同、作用范围不同、内存存放的位置不同、成员变量有默认值而局部变量没有
创建对象
• 类名 对象名= new 类名();
• 对象名.成员变量
• 对象名.成员方法
This关键字
this的作用:
this表示的是当前对象本身
更准确地说,this代表当前对象的一个引用。
普通方法中使用this:
区分类成员属性和方法的形参.
调用当前对象的其他方法(可以省略)
位置:任意
构造方法中使用this:
–使用this来调用其它构造方法
位置:必须是第一条语句
this不能用于static方法。
static关键字
使用static声明的成员变量称为静态变量
使用static声明的方法称为静态方法:
- 不需要对象,就可以调用(类名.方法名)
- 在调用该方法时,不会将对象的引用传递给它,所以在static方法中不可访问非static的成员
- 静态方法不能以任何方式引用this和super关键字
静态变量不静态方法又称为类变量和类方法
-
static修饰的成员变量和方法,从属于类
-
普通变量和方法从属于对象
-
静态方法不能调用非静态成员,编译会报错
静态属性的访问形式:
(1)对象名.属性(2)类名.属性
静态方法:
访问修饰符static 返回值类型 方法名(){}
访问形式:
(1)对象名.方法名();(2)类名.方法名();
static修饰和非static修饰的区别
static、非private修饰 | 非static、private修饰 | |
属性 | 类属性、类变量 | 实例属性、实例变量 |
方法 | 类方法 | 实例方法 |
调用方法 | 类名.属性 类名.方法() 对象.属性 对象.方法() | 对象.方法() 对象.属性 |
归属 | 类 | 单个对象 |
代码块
概念:使用{}括起来的一段代码
分类:根据位置可分为:
普通代码块:直接在方法或语句中定义的代码块
构造代码块:直接写在类中的代码块
静态代码块:使用static声明的代码块
封装
概念:指隐藏对象的属性和实现细节,仅对外提供公共访问方法
好处:(1)只能通过规定的方法访问数据
(2)隐藏类的实例细节,方便修改和实现。
封装的步骤:(1)修改属性的可见性设为(private)
(2)创建getter/setter方法(用于属性的读写)(通过这两种方法对数据进行获取和设定,对象通过调用这两种发方法实现对数据的读写)
(3)在getter/setter方法中加入属性控制语句(对属性值的合法性进行判断)