目录
⚽示例一:
🥇 代码:
🥇结果:
⚽ 示例二:
🥇 代码:
🥇结果:
👓 构造方法:
⚽特性:
⚽注意:
描述:
Java是一门面向对象的编程语言,我门之后写的代码也都是基于面向对象来实现的,主要依靠对象间的交互来完成实现的,而非面向过程。那我们该怎么理解这个面向对象呢?面向对象和面向过程有什么区别?该如何实现面向对象?下面我通过据一些例子,希望能帮助大家理解,当然作为初学者的我们,理解这个不是一时半会就能完全懂的,我们还需要通过后续的学习和代码实现来慢慢消化~~
面向对象和面向过程的区别:
面向对象和面向过程是两种完成任务的方式方法,这里我们拿洗衣服这个任务来通过两种方式实现。
面向过程:
使用面向对象的方式来完成洗衣服这个任务,就跟名字一样,我们更多的精力是放在如何洗衣服的这个过程上,这些过程就是核心,同样,这种方式中间的过程不能有一步出错,所以面向过程来实现的代码的维护与扩展都非常麻烦与困难!!
面向对象:
还是洗衣服这个任务,为了完成洗衣服,我们可以抽象出来人,洗衣机,衣服,洗衣粉这4个类,分别实例出对应的对象,通过对象之间的交互来完成洗衣服整个任务,这样洗衣服的整个过程就变成:
人将衣服和洗衣粉放入到洗衣机里,然后启动洗衣机,洗衣机完成洗衣服和烘干的任务
以面向对象方式来进行处理,就不关注洗衣服的过程,只需要将衣服放进洗衣机,倒入洗衣粉,然后启动洗衣机就可以完成洗衣服的任务,具体洗衣机是怎么来洗衣服,如何来甩干的,我们就不用去关心了
注意:
面向过程和面相对象并不是一门语言,而是解决问题的方法,没有那个好坏之分 ,但是面向对象相较于面向过程,代码更简洁更便于管理和扩展,而面向过程相较于面向对象而言,代码逻辑更清晰,但是不方便管理,这一点我们要清楚。
面向对象的代码实现:
示例一:
字如其名,以这样的方式来完成一个任务,我们需要操作对象,通过对象内部的方法,进行对象之间的交互来完成任务。那么对象是什么,简单来说,对象就是一个实体,比如人,猫,狗,洗衣机等等...... 而类就是来描述一个对象的,通过类来抽象出这个对象的属性(尺寸,类型,名字等等......)和方法(是干嘛的,能干嘛......)
代码:
public class Person {
//属性
public String name;
public int age;
public int weight;
//方法(行为)
public void eat(){
System.out.println(name+"正在吃米饭");
}
public void sleep(){
System.out.println(name+"正在睡觉");
}
}
class Main2{
public static void main(String[] args) {
Person person = new Person();
person.name = "张三";
person.eat();
person.sleep();
}
}
结果:
示例二:
我们再抽象出一个狗的对象,首先我们要想一想要抽象的这个对象有哪些属性,有哪些方法(行为)
想到了有哪些属性和行为,就可以通过类来描述一个对象,再通过对象之间的交互完成一系列的任务。
代码:
class Dog{
public String name;//姓名
public int age;//年龄
public String color;//毛发颜色
public void eat(){
System.out.println(name+"正在吃狗粮");
}
public void barks(){
System.out.println(name+"正在汪汪叫");
}
}
class Main2{
public static void main(String[] args) {
Dog dog = new Dog();
dog.name = "大黄";
dog.age = 3;
dog.color = "黄";
dog.eat();
dog.barks();
}
结果:
构造方法:
构造方法是一个特殊的成员方法,用来帮助我们对对象的初始化,在上面两个示例里,我们都是通过在main方法里通过 引用.属性 的方式来对对象进行初始化的,那么有没有不用这么麻烦,在实例化对象的时候就对对象完成初始化,那么就需要借助构造方法。。
使用构造方法初始化:
特性:
1.方法名必须与类名相同
2.没有返回值,也不能写void
3.构造方法可以重载
注意:
即使我们不写构造方法,编译器也会自己提供一个不带参数的构造方法,但是如果我们写了构造方法,编译器就不会再提供构造方法。。