Java 简述三大特征

面向对象

面向过程和面向对象

● 面向过程:
分析出解决问题所需要的步骤,然后把步骤一步一步实现。
面向过程直接关注流程。
● 面向对象:
以分类的方式进行思考和解决问题。
面向对象先对整体关系作出分类,然后根据不同的类深入细节的处理。 面向对象的思想符合人类的认知习惯

Java类

• 类的结构
成员变量:事物属性的描述;
方法:事物的行为;(可以做的事情)
构造方法:用于创建对象;
内部类: 即在类体中声明的类。
块:一段没有名称的代码块

类和对象

类是一类事物的抽象概念,是一个模型. 对象是由这个模型所创造的一个个具体存在的,实实在在存在的实例. 所以创建对象的过程也叫实例化对象.
现实生活中先有对象后有类,而编程时先设计类后创建对象

1.类与对象的概念

  • 对象是对现实世界中事物的抽象,是Java程序的基本封装单位,是类的实例;
  • 类是对象的抽象,是数据和操作的封装体;
  • 属性是事物静态的抽象,在程序中用数据成员加以描述;
  • 操作是事物动态特征的抽象,在程序中用成员方法来实现;

2类与对象的区别

1、类是对某一类事物的描述,是抽象的;

而对象是一个实实在在的个体,是类的一个实例。

比如:“人”是一个类,而“教师”则是“人”的一个实例。

2、对象是函数、变量的集合体;

而类是一组函数和变量的集合体,

即类是一组具有相同属性的对象集合体。

3、类的数据值是共享的,一个实例能访问它所属类的类数据值;

而实例数据属于单个对象,除共享了所在类中的数据外,

不同对象还会有不同的数据值。

4、先有类,才有类的实例(对象)。

应用在:当你在创建某个类的实例(对象)之前,这个类必须被定义。

5、实例方法和类方法的区别在于:

实例方法属于单个对象,类方法属于类。

变量

● 成员变量:
成员变量是定义在类中,方法体之外的变量。成员变量可以使用Java语言中任何一种数据类型(包括基本类型和引用类型)。在定义成员变量时可以对其初始化,如果不对其初始化,Java使用默认的值对其初始化。成员变量在创建对象的时候会从类中复制一份到对象中。成员变量可以被类中方法、构造方法和特定类的语句块访问。成员变量的作用范围为整个类体。
● 局部变量:
在方法、构造方法或者语句块中定义的变量被称为局部变量。局部变量可以使用Java语言中任何一种数据类型(包括基本类型和引用类型)。局部变量在使用前必须初始化赋值。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。

方法

● 成员方法:成员方法是定义在类中。
● 构造方法:用来初始化对象的方法。

• 构造方法名与类名相同,且没有返回值,且不需要使用void修饰。
• 作用:在构造方法中为创建的对象初始化赋值,
• 在创建一个对象的时候,至少要调用一个构造方法。
• 每个类都有构造方法。如果没有显式地为类定义构造方法,Java将会为该类提供一个默认
构造方法,但是只要在一个Java类中定义了一个构造方法后,默认的无参构造方法即失效。
• 一个类可以有多个构造方法

方法重载

● 方法的重载是指同一个类中具有相同的名字,但参数不同的多个方法。
● 参数不同(可以有三方面的不同)
● 数量不同
● 类型不同
● 顺序不同
● 调用时,会根据不同的参数表选择对应的方法。
• 注意:方法重载跟方法的返回值类型没有任何关

关键字
this

this关键字代表当前对象
使用this关键字引用成员变量
使用this关键字引用成员方法

static

● static被称为静态,可以用来修饰类的属性,方法,代码块,内部类。
• 随着类的加载而加载
• 优先于对象存在
• 修饰的成员,被所有对象所共享
• 可不创建对象,直接被类调用

代码块

代码块在类中声明,类似一个没有名称的方法体(代码块),代码分实例块和静态块
实例块:每次创建对象时自动调用
{
//任何符合语法的Java代码
}
静态块:类加载时自动调用,仅一次,与是否创建对象无关。
static {
//任何符合语法的Java代码
}

访问修饰权限符

访问权限修饰符:用来修饰类,变量,属性,方法,内部类,控制其访问权限(访问权限与包密切相关);

public:公共的;用来修饰:类,成员变量,方法,内部类,在任何类中都能访问;

protected:保护的;用来修饰:成员变量,方法,内部类,特别的(继承父类的子类可以访问);

default:默认的;用来修饰:类,成员变量,方法,内部类;

private:私有的;用来修饰:成员变量,方法,内部类;

在同包的其他类中:public protected default 可以访问;

private:只有在同包同类中才能访问;

不同包不同类只有public可以进行访问;

面向对象特征

封装

封装:将类的某些信息隐藏在类内部,不允许外部程序直接访问,
而是通过该类提供的方法来实现对隐藏信息的操作和访问

继承

1.继承的概念

1.继承是所Java 语言不可缺少的组成部分。

2.继承是 Java 面对对象编程技术的一块基石,是面对对象的三大特征之一,也是实现软件复用的重要手段,继承可以理解为一个对象从另一个对象获取属性的过程。

3.如果类 A 是类 B 的父类,而类 B 是类 C 的父类,我们也称类 C 是 A 的子类,类 C 是从类 A 继承而来的。在 Java 中,类的继承是单一继承,也就是说,一个子类只能拥有一个父类。

4.继承中最常使用的两个关键字是 extendsimplements ,这两个关键字的使用决定了一个对象和另一个对象是否是 IS-A (是一个)关系,通过使用这两个关键字,我们能实现一个对象获取另一个对象的属性。

5.所有 Java 的类均是由 java.lang.Object 类继承而来的,所以 Object 是所有类的祖先类,而除了 Object 外,所有类必须有一个父类。

6.将子类的共有特征放在父类中

7.实现代码的复用,扩展性好;子类除了继承父类功能之外,还可以拓展自己的功能。

我们通过使用 instanceof 操作符,能够确定 A is B 的关系

多态

1.概念

多态:同一种事物在不同时刻表现不同的状态;

2.存在的必要条件

  • 要有继承(包括接口的实现)(前提条件);
  • 必须要有重写;
  • 父类引用指向子类对象;

3.多态中成员的特点

1.多态成员变量:编译运行看左边
   Fu f=new Zi();     

   System.out.println(f.num);//f是Fu中的值,只能取到父中的值

 2.多态成员方法:编译看左边,运行看右边

    Fu f1=new Zi();

    System.out.println(f1.show());//f1的门面类型是Fu,但实际类型是Zi,所以调用的是重写后的方法。

4.多态的转型

多态的转型分为向上转型和向下转型两种:

1.向上转型:多态本身就是向上转型过的过程
使用格式:父类类型 变量名=new 子类类型();

 Animal b = new Bird();//向上转型,子类自动上升为父类类型;

​ 适用场景:当不需要面对子类类型时,通过提高扩展性,或者使用父类的功能就能完成相应的操作。

​ 优点:父类引用表示子类对象,提升了代码的扩展性;

​ 缺点:父类无法调用子类特有的方法;

2.向下转型(强制转化):一个已经向上转型的子类对象可以使用强制类型转换的格式,将父类引用类型转为子类引用各类型

  • 通过父类强制转换为子类,从而来调用子类 独有的方法

    使用格式:子类类型 变量名=(子类类型) 父类类型的变量;

    适用场景:当要使用子类特有功能时。

  • 为了向下转型顺利完成, Java 中提供了一个关键字:instanceof (来判断某对象是否是某类的实例)

接口

1.概念:

接口:接口(interface)是抽象方法和常量值的定义的集合。

从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现。

  • 接口和抽象类一样都是用于顶层类,规范特征方法;
  • 成员变量默认为静态常量;

2.接口存在的意义

:一个类只能有一个(直接)父类,却可以实现多个接口;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr. Rabbit.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值