达内javaSE_day05学习笔记 02 —— 面向对象、面向过程、类和对象
javaSE_day05
目录
1. 面向对象和面向过程
1.1 面向过程
eg: 想吃面包 (自己做)
买面 --> 和面 --> 模型 --> 烤熟 --> 吃面包
- 适合于简单应用
1.2 面向对象
eg: 想吃面包 (让别人做(面包师))
买面 --> 和面 --> 模型 --> 烤熟 --> 吃面包
以面向过程为基础
-
适合于大型、复杂的项目
-
三大特征:继承、封装、多态、(抽象)
-
封装:
封装的实现:定义私有变量 、提供公有的方法 -
继承:
特点:
-
什么是继承:由已有类产生新类的一种机制
-
父类子类:
- 父类:已有类(被继承类)
- 子类:新类
-
继承性:子类可以继承父类的所有成员(构造方法不能继承),有些继承是不能使用的(如private)
-
java只支持单一继承。
-
Object是*类
-
满足一种关系:子类 is a 父类 eg: student is a dog //err
-
extends表示继承
super
- super:表示父类对象
- super.成员
- super(参数):必须是子类构造方法的第一条有效语句 // 子类默认调用父类无参构造方法
-
-
多态
-
2. 类和对象
-
类:对具有共同属性和行为特征的一类事物的抽象。(属性对应变量(静态);行为对应方法(动态))
-
对象:通过类创建的实例。
类是创建对象的模板 先有类再有对象创建对象就是调用构造方法
eg: 创建类、对象的创建、用对象使用类成员
2.1 类的定义
class 类名{
类成员的定义:成员变量,方法,块({ })
}
- 类名首字母要大写
- 类分为工具类,测试类(程序入口类)
2.2 构造方法(构造器)
-
定义:方法名和类名相同,无返回类型。
可以有多个构造方法(只和参数的数据类型有关),多个构造方法一定是重载的。
-
来源:2个途径。
- (1)系统默认。没有参数,一定是public修饰的
- (2)自定义。不再有默认的构造方法。
-
作用:和new一起完成创建对象。
-
使用:new 构造方法;
eg:
package cn.tedu.demo;
/**
* 调用构造方法
* 构造方法的重载
* @author Dell
*
*/
public class Demo2 {
public void Demo2() { //有void,不是构造方法,在测试类中用demo2.Demo2()调用
System.out.println("Demo2");
}
//构造方法的重载
public Demo2() { // 是构造方法 用Demo2 demo2 = new Demo2();调用
System.out.println("Demo2");
}
public Demo2(int x) { //参数的数据类型不同,是构造方法的重载
System.out.println(x);
}
public Demo2(String str) { //参数的数据类型不同,是构造方法的重载
System.out.println(str);
}
}
构造方法不能继承,其他方法都可以被继承,只是private方法不能使用。
2.3 对象的初始化过程(内存)
创建对象时,成员变量会被初始化
2.4 构造块 { }
- 在构造方法之前执行,初始化成员变量
- 构造块内可以定义和成员变量相同名称的变量
2.5 局部块
public void test() {
// 局部块 :执行完毕,立即回收,可以提高内存的利用率
{
int x = 9;
System.out.println(“x = 9”);
}
System.out.println(“test”);
}
2.6 变量的分类
定义的位置 | 访问范围 | |
---|---|---|
成员变量 | 定义到类体中 | 整个类内 |
局部变量 | 定义到方法内或参数列表 | 当前方法 |
2.7 this关键字
成员变量和局部变量 重名 时,用this关键字。
- this:表示的不是当前类对象,表示成员变量
- 访问类成员:this. 成员 (成员变量)
- 调用本类的构造方法:this(实参);
this()必须是构造方法的第一条有效语句。
推荐阅读
-
Python面向对象编程中关于类和方法的学习笔记
-
PHP 面向对象程序设计(oop)学习笔记(一) - 抽象类、对象接口、instanceof 和契约式编程
-
Python面向对象编程中关于类和方法的学习笔记
-
PHP 面向对象程序设计(oop)学习笔记(一) - 抽象类、对象接口、instanceof 和契约式编程
-
Python学习笔记-类和实例(面向对象)
-
PHP 面向对象程序设计(oop)学习笔记(一) - 抽象类、对象接口、instanceof 和契约式编程_php实例
-
达内javaSE_day05学习笔记 02 —— 面向对象、面向过程、类和对象
-
PHP 面向对象程序设计(oop)学习笔记(一) - 抽象类、对象接口、instanceof 和契约式编程_PHP教程
-
PHP 面向对象程序设计(oop)学习笔记(一) - 抽象类、对象接口、instanceof 和契约式编程_php实例
-
【面向对象学习笔记day02】类和对象的概念+类和对象的关系+类的设计+大驼峰命名法+ 类名的确定+属性和方法的确定