JAVA面向对象(总结篇) 您所在的位置:网站首页 群主的对象怎么叫 JAVA面向对象(总结篇)

JAVA面向对象(总结篇)

2024-06-14 23:09| 来源: 网络整理| 查看: 265

面向对象的语言中包含了三大基本特征,封装、继承和多态

public class people { //属性 int age=22; String name="limu"; //成员方法 没有static关键字 public void sleep() { System.out.println("进入休息状态..."); } //休息 public void eat() { System.out.println("进入吃饭状态"); } //吃饭 public void study() { System.out.println("进入学习状态"); }//学习 }

创建people的类

通常情况下 一个类并不能直接使用 需要根据类创建一个对象 ,才能使用

import 导包 、也就是指出需要使用的类 在什么位置

import 包名称 类名称

当和当前类属于同一个包的情况 可以省略不写

通过类创建一个对象

类名称 对象名 =new 类名称()

使用 :

使用成员变量 :对象名.成员变量名 使用成员方法 : 对象名.成员方法名

带有static 的方法就是普通的方法 不需要类和对象就能生成

使用对象类型作为方法的参数

java成员变量和局部变量的区别

// 定义的位置不一样

局部变量 :在方法的内部 成员变量:在方法的外部直接写在类当中

//作用范围不一样 局部变量:只有在方法中能使用 成员变量:整个类都可以通用

//默认值不一样

局部变量:没有默认值 成员变量:如果没有赋值,会有默认值

面对对象的三大特性之:封装性

封装性在java里的体现

1、方法就是一种封装 2、关键字private也是一种封装 代表私有化

间接访问private成员变量 就是定义一对Getter/Setter方法 必须叫setxxx或者getxxx命名规则 对于Getter来说 不能有参数 返回值类型和成员变量对应 对于Setter来说 不能有返回值 参数类型和成员变量对应

this 关键字

//当方法的局部变量和类的成员变量重名的时候,根据就近原则,优先使用局部变量 //如果需要访问本类中的成员变量 需要使用格式 //this.成员变量名 //谁调用的方法,谁就是this //在方法的内部才能用this

构造方法

构造方法是专门用来创建对象的方法 当我们用new来创建对象的时候 其实就是在调用构造方法

public 类名称(参数类型 参数名称){ //方法体 }

注意事项: 1、构造方法的名称必须和所在的类名称完全一样 2、构造方法不要写返回值类型 连void也不要写 3、用途 用来使用对象 4、new 就是在调用构造方法 用new创建对象的时候就执行了构造方法里的语句 5、如果没有编写任何构造方法 那么编译器就会赠送一个构造方法 没有任何参数、方法 6、一旦编写了任何一个构造方法 那么编译器将不再赠送 7、构造方法也是可以进行重载的、方法名称相同、方法参数不同 这个叫重载

抽象的概念

子类就是一个父类,所以是继承关系 抽象类的关键字 abstract 如果父类当中的方法不确定如何进行{}方法体实现,那么这就应该是一个抽象方法 抽象类不能直接new 创建对象 抽象类可以有构造方法 publuc abstract class abc{} public abstract void abc(){}

接口的概念

接口就是一种公共的规范标准。 只要符合规范标准 就可以大家通用。

接口定义的基本格式: //接口就是多个类的公共规范 //接口是一种引用数据类型,最重要的内容就是其中的:抽象方法。 //如何定义一个接口的格式 /* public interface 接口名称{ // 接口内容

备注:换成了关键字interface之后,编译生成的字节码文件仍是.java --》 .class如果是java7 那么接口中可以包含的内容有: *1、常量 *2、抽象方法如果是java8,还可以额外包含有: *3、默认方法 *4、静态方法如果是java9,还可以包含有: *5、私有方法 */接口使用步骤1、接口不能直接使用,必须有一个“实现类”来实现该接口格式:public class 实现类名称 implements 接口名称{//…}2、接口的实现类必须覆盖重写(实现)接口中所有的抽象方法实现 :去掉abstract 关键字 进行使用3、 创建实现类的对象,进行使用 *注意事项: *如果实现类并没有覆盖重写接口当中所有的抽象方法 *那么这个实现类自己就必须是抽象类

/*

在任何版本的java中,接口都能定义抽象方法格式:public abstract 返回值类型 方法名称(参数列表);注意事项:1、接口当中的抽象方法,修饰符必须是两个固定的关键字2、public abstract这两个关键字修饰符,可以选择性省略3、方法的三要素,可以随意定义4、 接口中的所有方法不能有具体的实现,也就是说接口中的方法必须是抽象方法 */

/*

从java8开始 ,接口里允许定义默认方法。格式:public default 返回值类型 方法名称(参数列表){方法体}备注:接口当中的默认方法可以解决接口升级的问题 / /接口的默认方法,可以通过接口实现类对象,直接调用接口的默认方法,也可以被接口实现类进行覆盖重写 */

接口的私有方法定义

/*

从java9开始 java允许接口中定义私有方法。1、普通私有方法,解决多个默认方法直接重复代码问题 * 格式 private 返回值类型 方法名称(参数列表){ * 方法体 * }

*/

多态性

面向对象三大特征:封装性、继承性、多态性

extends继承或者implementers实现,是多态性的前提 一个对象拥有多个形态 即成为多态性、例如 小明是一个学生,但同时也是一个人 小明同时具备了学生形态、和人类形态

多态的格式和使用:

发红包案例分析 /*

发红包案例分析1、群主的一笔金额,从群主余额中扣除,平均分成n等份2、群友收到红包、分到的红包计到自己的余额中用户类:姓名、余额群主类:(发红包的个数、发红包的金额)发红包的方法普通成员类:(收到的红包金额)收红包的方法发红包的逻辑:返回值类型 :ArrayList方法名称: send参数列表: 1、总共发多少钱 ,2、分成多少份public ArrayList send(int totalMoney,int count){}

对象的向上转型和向下转型

/* * 对象的向上转型,就是父类引用指向之类对象 * 向上转型一定是安全的 从小范围转向了大范围 * 但是向上转型有一个弊端:对象一旦向上转型为父类 * 那么就无法调用子类原本特有的内容 * 解决方案:用对象的向下转型(还原) */ /* * 对象的向下转型,其实是一个还原的动作。 * 格式: * 子类名称 对象名 = (子类名称) 父类对象; * 含义:将父类对象,【还原】成为本来的子类对象。 * 本来是猫不能还原成为狗 * Animal animal = new Cat(); //本来是猫向上转型成为动物 * Cat cat = (Cat) animal; //本来是猫 , * 已经被当做动物了, 还原回来成为原来的猫 * * 注意事项: * A、必须保证对象本来创建的时候,就是猫,才能向下转型为猫 * B、如果对象创建的时候本来不是猫,现在非要向下转型成为猫,就会报错 */


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有