java系列:面向对象(一)
面向对象
经常听到的一句话:万物皆对象。那什么是对象呢?用Java语言来解释解释;
面向对象的核心: 封装、继承、多态、抽象;
面向对象:简称OO,是一种以事务为中心的编程思想;
面向对象设计:简称OOP,是一种程序开发的方法,它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性;
封装:对功能独立的代码封装,提高代码重用率,隐藏实现过程;
- 将一类事物的属性和方法抽象到java类中
- 将属性私有化表示变量,提供公共访问的方式,可以有效保证数据的合法性和安全性;
继承:子类继承父类的属性和方法; - 关键字:extends;可以继承父类的属性和方法,同时可以重写父类的方法,在调用时调动重写的方法;
多态:子类对象指向父类引用调用父类方法,显示子类信息; - 多态的前提:存在继承关系或实现关系;
- 多态中调用方法时默认调用子类重写的方法,如果子类没有重写该方法,调用父类的方法,如果父类没有该方法编译不通过;
- 多态中调用属性默认调用父类属性,如果父类没有定义该属性,则编译不通过;
抽象:规定子类或实现类必须具备的行为(); - 关键字:abstract
抽象方法: - 没有方法体,必须被子类实现,不能被private修饰;
抽象类: - 抽象类不能实例化,可以有普通方法和属性;
- 可以有抽象方法,也可以没有;
- 抽象类被继承,里面的抽象方法,子类必须要实现;
类
对一类事物共有属性(变量)和行为(方法)的抽取
- 是同类型东西的概念,是对现实生活中食物的描述,映射到Java中描述就是class定义的类。类是对象的模板、图纸,是对象的数据结构定义。
- 其实定义类,就是在描述事务,就是在定义属性(变量)和方法(函数);
- 类中可以声明:属性、方法。构造器;属性(变量)分为:实例变量、局部变量;
实例变量:用于声明对象的结构的,在创建对象时候分配内存,每个对像有一份!实例变量在堆中分配,并作用于整个类中,实例变量有默认值,不初始化也可以参与运算;
局部变量:在栈中分配,作用于方法或语句中,必须初始化,有值才能运算; - 类与类之间的关系:
①关联:一个类作为另一个类的成员变量:需要另一个类来共同完成。
②继承:类B继承类A,B extends A;B就是A的子类,共享A的公共属性和方法;
③依赖个别方法和另一个类相关; - null与空指针异常:引用类型变量用于存放对象的地址,可以给引用类型赋值为null;表示不指向任何对象。当某个引用类型变量为null时无法对对象实施访问,此时,如果通过引用访问成员变量或调用方法,会产生空指针异常。
除了8中基本类型,其他都是引用类型变量;
对象
一类事物中的单个事例,是这类事物实实在在存在的个体,利用类作为模板穿件的个体实例,本质是数据
类与对象的关系:类是对象的模板,对象时类的实现;
属性:变量;行为:方法
局部变量:定义在方法中或代码块中的变量成为局部变量,作用范围:从声明开始到下一个大括号结束;
全局变量:定义在类中方法外的变量成为全局变量,作用范围:从声明开始到这个类结束;
全局变量可以不定义初始值,初始值会使用默认值,局部变量不定义初始值无法直接使用;
类变量:属于类的变量,该类所有对象共享,任意对象修改该类变量后所有对象的类变量都发生变化,用static修饰
方法:可以看成对象具体的行为动作和功能;
静态方法:static修饰,可以直接通过类名调用,不用实例化对象,静态方法中不能调用非静态方法和非静态属性
普通方法:需要实例化对象,通过对象**.**方法名调用;
普通方法:可以调用成员变量、类变量、普通方法和静态方法;
静态方法:可以调用类变量、静态方法和静态变量;
static只能修饰变量、方法和代码块
包
1)包名必须是小写,多个单词用“ . ”隔开。在同一个包中,不能有同名类;
2)只要在同一个包中,则可以直接用extends(类相互知道在哪),若不在同一个包中则用import导入;
本文地址:https://blog.csdn.net/YCD111/article/details/107319570