Java面向对象三大特征

目录

一.类与对象

类与对象的区别

创建类

创建对象

二.属性

三.方法重载

注意事项与使用细节

四.可变参数

基本语法

注意事项与使用细节

五.构造方法(构造器)

特点:

注意事项与使用细节

this 关键字

六.面向对象三大特征

封装

继承

多态


一.类与对象

:把具有相同属性和行为的一类对象抽象为类。

对象:某个类的一个实体。

类与对象的区别

1.类是抽象的,概念的,代表一类事物(数据类型)

2.对象是具体的,实际的,代表一个具体的事物(引用类型)

3.类是对象的模板,对象是类的一个个体,对应一个实例

创建类

  • 语法结构:

[修饰符列表] class 类名{

属性:

方法:

  • 例:
Public class Hello{
}

例:Public class Hello{

}

  • 注意:
  1. 类名要与文件名一致
  2. 类名首字母要大写

创建对象

对象要根据类来创建,同时要用关键字new 来创建

Scanner myScanner = new Scanner();


二.属性

用来描述具体某个对象的特征。描述的是对象的状态信息,通常以变量的形式进行定义。

变量通常分为成员变量和局部变量

class Person{
    int age;
     double salary;
}

在类体中,方法体之外定义的变量称为“成员变量”

  1. 成员变量定义在类体中,在整个类中都可以被访问
  2. 成员变量分为类变量和实例变量,实例变量存在于对象所在的堆内存中
  3. 成员变量有默认初始化值
  4. 成员变量的权限修饰符可根据需要,选择任意一个
  5. 创建对象后才能访问的变量称为实例变量

定义在方法内,代码块内的变量称为局部变量

  1. 局部变量定义在局部范围内
  2. 局部变量存在于栈内存中
  3. 作用范围结束,变量空间自动释放
  4. 局部变量无默认值,每次必须显示初始化
  5. 局部变量声明时不指定权限修饰符

三.方法重载

方法重载:如果同一个类中包含了两个及两个以上方法名相同,方法参数的个数、顺序或者类型不同的方法,则称为方法的重载。

注意事项与使用细节

  1. 同一个类中,方法名称一致
  2. 方法参数的个数、类型或者顺序不一致
  3. 与返回值、访问修饰符无关


四.可变参数

Java允许将同一个类的多个同名功能但参数个数不同的方法,封装成一个方法,就可以通过可变参数实现。

  • 基本语法

访问修饰符 返回类型 方法名(数据类型... 形参名){

}

  • 注意事项与使用细节

  1. 可变参数的实参可以为0个或者任意多个
  2. 可变参数的实参可以是数组
  3. 可变参数的本质就是数组
  4. 可变参数可以和普通类型的参数一起放在形参列表,但必须保证可变参数在最后
  5. 一个形参列表中只能出现一个可变参数

五.构造方法(构造器)

构造方法是类的一种特殊方法,他的主要作用是完成对新对象的初始化

  • 特点:

  1. 方法名与类名相同
  2. 没有返回值
  3. 在创建对象时,系统会自动调用该类的构造器完成对象的初始化

例:

  • 注意事项与使用细节

  1. 一个类可以定义多个不同的构造器,即构造器重载
  2. 构造器名和类名要相同
  3. 构造器没有返回值
  4. 构造器是完成对象的初始化,并不是创建对象
  5. 在创建对象时,系统自动的调用该类的构造方法
  6. 如果没有定义构造器,系统会自动给类生成一个默认无参构造器(默认构造器)
  7. 一旦定义了自己的构造器,默认的构造器就覆盖了,就不能再使用默认的无参构造器,除非显示定义一下
  • this 关键字

this关键字代表本类

注意事项与使用细节

  1. this 关键字可以用来访问本类的属性,方法,构造器
  2. this用来区分当前类和局部变量
  3. 访问成员方法的语法:this.方法名(形参列表)
  4. 访问构造器语法:this(形参列表),注意只能在构造器中访问另一个构造器,必须放在第一条语句
  5. this不能在类定义的外部使用,只能在类定义的方法中使用


六.面向对象三大特征

封装

封装就是把抽象出的数据(属性)和对数据的操作(方法)封装在一起,数据被保护在内部,程序在其他部分只有通过被授权的操作(方法),才能对数据进行操作。

封装的好处

  1. 隐藏实现细节
  2. 可以对数据进行验证,保证安全合理

封装的实现步骤

  1. 将属性进行私有化private(不能直接修改属性)
  2. 提供一个公共的(public)set方法,用于对属性判断并赋值
  3. 提供一个公共的(public)get方法,用于获取属性的值

继承

继承可以解决代码复用,让编程更接近人类思维。当多个类存在相同的属性(变量)和方法时,可以从这些类中抽象出父类,在父类中定义这些相同的属性方法,所有的子类不需要重新定义这些属性和方法,只需要通过extends来声明继承父类即可

  • 继承的好处
  1. 代码的复用性提高了
  2. 代码的拓展性和维护性提高了
  • 基本语法

class 子类 extends 父类{

}

  1. 子类就会自动拥有父类定义的属性和方法
  2. 父类又称超类,基类
  3. 子类又称派生类
  • 细节
  1. 子类继承了所有的属性和方法,非私有的属性和方法可以在子类直接访问,但是私有属性和方法不能在子类直接访问,要通过父类提供公共的方法去访问
  2. 子类必须调用父类的构造器,完成父类的初始化
  3. 当创建子类对象时,不管使用子类的哪个构造器,默认情况下总会去调用父类的无参构造器,如果父类没有提供无参构造器,则必须在子类的构造器中用super去指定使用父类的哪个构造器完成对父类的初始化工作,否则,编译不会通过
  4. 如果希望指定去调用父类的某个构造器,则显示的调用一下super(参数列表)
  5. super在使用时,必须放在构造器第一行(super只能在构造器中使用)
  6. super()和this()都只能放在构造器第一行,因此这两个方法不能共存在一个构造器
  7. Java使用类都是object类的子类,object是所有类的基类
  8. 父类构造器的调用不限于直接父类,将一直往上追溯直到object类(顶级父类)
  9. 子类最多只能继承一个父类(指直接继承),即Java中的单继承机制
  10. 不能滥用继承,子类和父类之间必须满足is-a的逻辑关系

多态

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值