面向过程和面向对象
1-什么是面向过程?
概述: 自顶而下的编程模式.
把问题分解成一个一个步骤,每个步骤用函数实现,依次调用即可。
就是说,在进行面向过程编程的时候,不需要考虑那么多,上来先定义一个函数,然后使用各种诸如if-else、for-each等方式进行代码执行。
最典型的用法就是实现一个简单的算法,比如实现冒泡排序。
2-什么是面向对象?
概述: 将事务高度抽象化的编程模式.
将问题分解成一个一个步骤,对每个步骤进行相应的抽象,形成对象,通过不同对象之间的调用,组合解决问题。
就是说,在进行面向对象进行编程的时候,要把属性、行为等封装成对象,然后基于这些对象及对象的能力进行业务逻辑的实现。
比如:想要造一辆车,上来要先把车的各种属性定义出来,然后抽象成一个Car类。
面向对象三大特性
封装
所谓封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏
继承
继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。通过继承创建的新类称为“子类”或“派生类”,被继承的类称为“基类”、“父类”或“超类”。继承的过程,就是从一般到特殊的过程。要实现继承,可以通过“继承”(Inheritance)和“组合”(Composition)来实现。继承概念的实现方式有二类:实现继承与接口继承。实现继承是指直接使用基类的属性和方法而无需额外编码的能力;接口继承是指仅使用属性和方法的名称、但是子类必须提供实现的能力;
多态
所谓多态就是指一个类实例的相同方法在不同情形有不同表现形式。多态机制使具有不同内部结构的对象可以共享相同的外部接口。这意味着,虽然针对不同对象的具体操作不同,但通过一个公共的类,它们(那些操作)可以通过相同的方式予以调用。
最常见的多态就是将子类传入父类参数中,运行时调用父类方法时通过传入的子类决定具体的内部结构或行为。
变量作用域
局部变量
全局变量
值传递和引用传递
值传递
适用范围:八大基本类型+String
public static void main(String[] args) {
int age = 18;
init(age);
System.out.println(age);
}
public static void init(int age){
age++;
}
输出结果 18
String 常用的方法
equals() indexOf() replace() replaceAll() spit() contains() length()
static
public static int money = 10000;
public void add(){
money += 100;
}
public static void main(String[] args) {
Bank bank1 = new Bank();
bank1.add();
Bank bank2 = new Bank();
bank2.add();
System.out.println(money);
}
输出200
设计模式
模板方法模式
策略模式:定义了一组算法,将每个算法都封装起来,并且使它们之间可以互换