面向对象的三个基本特征是什么?面向对象是什么概念?

TheDisguiser 2020-06-14 11:39:54 java常见问答 6046

我们都知道java是面向对象的语言,实际上你们知道面向对象是什么概念吗?它的三个基本特征又是什么呢?下面一起了解下吧。

面向对象概念

面向对象,这是一种以对象为中心的编程思想,对象是什么?一个实实在在的物体,就是一个对象。对象是类的具体实现。面向对象会通过分析问题来把事物的属性与行为包括本身对象化,然后通过不同对象之间的调用来组合解决问题。面向对象认为万物皆对象,它创建对象的目的并不是为了完成某个步骤,一定是为了描述某个事物在解决问题的过程中的行为而创建的。

面向对象三大基本特征

1)、封装

封装是什么?

具体来说就是将一个客观事物封装成抽象的类,且这个类可以把自己的数据和方法只让可信的类或对象操作,这称为私有化。它还可以对不可信的进行信息隐藏。封装是对象和类概念的主要特性之一。简单的说,一个类就是一个封装了数据及操作这些数据的代码的逻辑实体。

封装的好处?

-对象的属性和方法是一个整体,不可分割

-保证数据安全性

-保证数据有效性 在方法加条件判断

如何进行封装?

属性的封装

1、将所有的属性加上private

2、为属性加上get/set方法

3、用set/get方法进行赋值取值

方法的封装

1、把方法名前面的public改为private

2、私有方法一定要在公共方法里面去调用

一般所有的属性都要私有,但是方法要根据需要来私有

2)、继承

什么是继承?

子类继承父类,然后子类能自动拥有父类的一些属性和方法,这就是继承

为什么要用继承?

为了简化代码,所以我们需要用继承。相同的功能交给父类去实现,然后子类继承父类后能自动拥有这些功能,并实现功能扩展、多态

继承的语法?

public class 子类 extends 父类
{}
public class 大学生
{
    String name;
    int age;
    char sex;
    public void 读书()
    {}
}
public class 中学生
{
    String name;
    int age;
    char sex;
    public void 读书()
    {}
}
public class 小学生
{
    String name;
    int age;
    char sex;
    public void 读书()
    {}
}

学生中一种 is-a

把相同属性和方法放在父类中定义,然后让各个子类继承父类

public class 学生
{
    String name;
    int age;
    char sex;
    public void 读书()
    {}
}
public class 大学生 extends 学生
{
    public void 读恋爱()
    {}
}
public class 中学生 extends 学生
{
    public void 上网()
    {}
}
public class 小学生 extends 学生
{
    public void 撒娇()
    {}
}

子类能继承到什么?

父类的私有成员和方法;父类的构造;

除了这两个无法继承,其他都可以

哪些类可以继承

凡是满足“is-a”(xx是一种xx)关系的,都可以继承。

单继承和单方向

单方向:子类能继承父类,但父类不可以继承子类

单继承:一个子类只能有一个直接父类

Object

所有类的祖宗类

继承的原理

new 一个子类对象出来的时候,先造出父类对象,然后再生子类对象

儿子没有东西就会找父亲拿

3)、多态

什么是多态?

多态就是指同一个行为具有多个不同表现形式或形态的能力。是指一个对象的相同方法在不同情形有不同表现形式。多态机制使具有不同内部结构的对象可以共享相同的外部接口。这就表明,虽然针对不同对象的具体操作不一样,但我们可以通过一个公共的类,来使它们通过相同的方式予以调用。

多态的优点?

-消除类型之间的耦合关系

-可替换性

-可扩充性

-接口性

-灵活性

-简化性

多态的实现:

public class 父类
{
    String name = "张三";
    public void 睡觉()
    {
        System.out.println("父亲睡是躺着睡的");
    }
    public void 走路()
    {}
}
public class 子类 extends 父类
{
    String name = "李四";
    int age = 10;
    public void 睡觉()
    {
        System.out.println("儿子睡是侧着睡的");
    }
    public void 上网()
    {}
}

以上就是关于面向对象的概念及三个基本特征的所有内容了,面向对象可以说是如今的主流编程思想,如果还有疑问,想了解更多java常见问题,就请关注我们的网站吧。

推荐阅读:

面向对象编程语言有哪些?有哪些特点?

面向对象编程的特点有哪些?面向对象编程思想详解

面向对象编程的优点是什么?缺点又是什么?