欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java系列:面向对象(一)

程序员文章站 2022-12-20 13:35:44
经常听到的一句话:万物皆对象。那什么是对象呢?用Java语言来解释解释;面向对象的核心: 封装、继承、多态、抽象;类是同类型东西的概念,是对现实生活中食物的描述,映射到Java中描述就是class定义的类。类是对象的模板、图纸,是对象的数据结构定义。其实定义类,就是在描述事务,就是在定义属性(变量)和方法(函数);类中可以声明:属性、方法。构造器;属性(变量)分为:实例变量、局部变量;实例变量:用于声明对象的结构的,在创建对象时候分配内存,每个对像有一份!实例变量在堆中分配,并作用于整个类中...

面向对象

经常听到的一句话:万物皆对象。那什么是对象呢?用Java语言来解释解释;
面向对象的核心: 封装、继承、多态、抽象;
面向对象:简称OO,是一种以事务为中心的编程思想;
面向对象设计:简称OOP,是一种程序开发的方法,它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性;
封装:对功能独立的代码封装,提高代码重用率,隐藏实现过程;

  • 将一类事物的属性和方法抽象到java类中
  • 将属性私有化表示变量,提供公共访问的方式,可以有效保证数据的合法性和安全性;
    继承:子类继承父类的属性和方法;
  • 关键字:extends;可以继承父类的属性和方法,同时可以重写父类的方法,在调用时调动重写的方法;
    多态:子类对象指向父类引用调用父类方法,显示子类信息;
  • 多态的前提:存在继承关系或实现关系;
  • 多态中调用方法时默认调用子类重写的方法,如果子类没有重写该方法,调用父类的方法,如果父类没有该方法编译不通过;
  • 多态中调用属性默认调用父类属性,如果父类没有定义该属性,则编译不通过;
    抽象:规定子类或实现类必须具备的行为();
  • 关键字:abstract
    抽象方法:
  • 没有方法体,必须被子类实现,不能被private修饰;
    抽象类:
  • 抽象类不能实例化,可以有普通方法和属性;
  • 可以有抽象方法,也可以没有;
  • 抽象类被继承,里面的抽象方法,子类必须要实现;

对一类事物共有属性(变量)和行为(方法)的抽取

  1. 是同类型东西的概念,是对现实生活中食物的描述,映射到Java中描述就是class定义的类。类是对象的模板、图纸,是对象的数据结构定义。
  2. 其实定义类,就是在描述事务,就是在定义属性(变量)和方法(函数);
  3. 类中可以声明:属性、方法。构造器;属性(变量)分为:实例变量、局部变量;
    实例变量:用于声明对象的结构的,在创建对象时候分配内存,每个对像有一份!实例变量在堆中分配,并作用于整个类中,实例变量有默认值,不初始化也可以参与运算;
    局部变量:在栈中分配,作用于方法或语句中,必须初始化,有值才能运算;
  4. 类与类之间的关系:
    ①关联:一个类作为另一个类的成员变量:需要另一个类来共同完成。
    ②继承:类B继承类A,B extends A;B就是A的子类,共享A的公共属性和方法;
    ③依赖个别方法和另一个类相关;java系列:面向对象(一)
  5. null与空指针异常:引用类型变量用于存放对象的地址,可以给引用类型赋值为null;表示不指向任何对象。当某个引用类型变量为null时无法对对象实施访问,此时,如果通过引用访问成员变量或调用方法,会产生空指针异常。
    除了8中基本类型,其他都是引用类型变量;

对象

一类事物中的单个事例,是这类事物实实在在存在的个体,利用类作为模板穿件的个体实例,本质是数据

类与对象的关系:类是对象的模板,对象时类的实现;

属性:变量;行为:方法
局部变量:定义在方法中或代码块中的变量成为局部变量,作用范围:从声明开始到下一个大括号结束;
全局变量:定义在类中方法外的变量成为全局变量,作用范围:从声明开始到这个类结束;
全局变量可以不定义初始值,初始值会使用默认值,局部变量不定义初始值无法直接使用;
类变量:属于类的变量,该类所有对象共享,任意对象修改该类变量后所有对象的类变量都发生变化,用static修饰
方法:可以看成对象具体的行为动作和功能;
静态方法:static修饰,可以直接通过类名调用,不用实例化对象,静态方法中不能调用非静态方法和非静态属性
普通方法:需要实例化对象,通过对象**.**方法名调用;
普通方法:可以调用成员变量、类变量、普通方法和静态方法;
静态方法:可以调用类变量、静态方法和静态变量;
static只能修饰变量、方法和代码块

1)包名必须是小写,多个单词用“ . ”隔开。在同一个包中,不能有同名类;
2)只要在同一个包中,则可以直接用extends(类相互知道在哪),若不在同一个包中则用import导入;

本文地址:https://blog.csdn.net/YCD111/article/details/107319570