文章目录
一,面向过程与面向对象
1,面向过程
面向过程:以分步骤的方式解决问题,用方法组织代码。
简单来说:就是按照日常思维编程,大家都用把大象装入冰箱来举例,我这里也就不例外了,也用这个通俗易懂的图片来给大家说明:
1,打开冰箱门
2,把大象放入冰箱
3,关闭冰箱门
我们只需要安好步骤一步一步执行就可以完成操作
2,面向对象(Object Oriented)
面向对象:以分类的方式解决问题,用类组织代码。
面向对象:就是万事万物皆对象,每一个对象都有自己的属性和行为,我们则是通过调用这些属性和方法来实现操作
用面向对象的思维来装大象
大象作为一个对象:能吃能喝能睡,能跑能跳,当然了不能飞!
冰箱作为一个对象:能开门,能装东西,能关门。
这便是面向对象,大家看出来了什么吗?每个独享都是独立的,都有各自的属性方法,面向对象就是把现实问题抽象为对象,通过调用每个对象的属性或功能来解决问题。
二,类与对象
这个问题其实更好理解了,我依旧用举例说明:
首先类与对象是不同的!
对象是对客观事物的抽象,类是对对象的抽象。 类是一种抽象的数据类型。 它们的关系是,对象是类的实例,类是对象的模板。
可能这样说好多人还是不理解我给大家总结一下就是,类里封装的是对象的属性与方法,就好似一个模板。对象则是调用这个模板。对里边的方法与属性进行实现。所以说:类是抽象的,不占用内存,而对象是具体的,占用存储空间。
类描述了一组有相同属性和相同方法的对象。
就好比摩托车同样都是摩托车却又分为街车,仿赛,踏板,复古等。但他们都有一个共同的行为就是都能.run();
三,基本特征:封装,继承,多态
封装(Encapsulation)
封装是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。用户是无需知道对象内部的细节,但可以通过该对象对外的提供的接口来访问该对象。
好处:
1、良好的封装能够减少耦合。
2、类内部的结构可以自由修改。
3、可以对成员进行更精确的控制。
4、隐藏信息,实现细节。
代码实现:
public class Users {
/*
* 对属性的封装
* 一个人的姓名、性别、年龄都是这个人的私有属性
*/
private String name ;
private String sex ;
private int age ;
/*
* get,set方法用于操作
*/
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
public class User {
public static void main(String[] args) {
Users user = new Users();
user.setAge(18);
user.setName("张三");
user.setSex("男");
System.out.println("名字为" + user.getName() +
",年龄为" + user.getAge() +
",性别为" + user.getSex());
}
}
继承(Inheritance)
public class C extends A{
...
}
继承允许class继承另一个class的一些通用的fields和methods。多个类存在相同的属性和行为时,定义这么多个类的属性和行为属实有些麻烦,将他们放到单独一个类中就相对比较简洁,只需继承那个定义好属性和行为那个类就行了。
好处:
1,继承提高了代码的重复性
2,继承的出现让类与类之间产生了关系,为多态提供了条件
注意:Java只支持单继承,不允许多继承,即一个子类只能有一个父类,而父类可以有多个子类。
多态(Polymorphism)
多态是同一个行为具有多个不同表现形式或形态的能力。
多态就是同一个接口,使用不同的实例而执行不同操作。
多态的优点:
1,消除类型之间的耦合关系
2,可替换性
3,可扩充性
4,接口性
5,灵活性
6,简化性
多态存在的三个必要条件:
a.继承
b.重写
c.父类引用指向子类对象:Parent p = new Child();
多态的实现方式
方式一:重写:
详细可访问: Java 重写(Override)与重载(Overload)。
方式二:接口
1, 生活中的接口最具代表性的就是插座,例如一个三接头的插头都能接在三孔插座中,因为这个是每个国家都有各自规定的接口规则,有可能到国外就不行,那是因为国外自己定义的接口类型。
2,java中的接口类似于生活中的接口,就是一些方法特征的集合,但没有方法的实现。具体可以看 java接口 这一章节的内容。
方式三:抽象类和抽象方法
————————————————
注意注意:
面向对象编程(Object-Oriented Programming)-简称(OOP)大家注意一下这个有面试题只写这个简写别问问就是吃过亏了! ,与面向过程(Procedure Oriented )