面向对象3

封装:

定义包:
     - 源代码中使用package 包名;指定包。
     - 需要将生成class文件放在对应的文件结构下。

private →  不写 → protected →  public

继承

 继承的关系:父类(基类、超类) →   子类
                 由一般到特殊的关系

多态:

向上转型: 自动完成。子类实例可以直接当成父类变量使用。
     
   向下转型: 必须进行强转。

多个相当类型的变量,调用同一个方法时,可以表现成多种不同的行为特征,这就是多态 instanceof

初始化块:

[static] {


           执行性的代码。
      }

初始化块没有名字,因此程序员不能显式调用;初始化块会自动执行。

 ▲ 静态初始化块(类初始化块):有static修饰。 在类初始化(在程序第一次主动使用该类时)的时候才会执行。
      主动使用:仅用该类定义变量,就不算主动使用

  ▲ 非静态初始化块(实例初始化块):无static修饰。每次调用构造器创建对象时,都会自动执行实例初始化块。
         而且一定是在构造器之前执行初始化块。

 实质:经过编译之后,实例初始化块的代码会被提取到每个构造器的前面。
               形象来说,Java编译器会把实例初始化块的代码剪切、并粘贴到某个构造器的前面

实例初始化块:其实就是用于将多个构造器开头的代码提取进行集中管理。


 ▲ 实例初始化块与实例变量的初始值:

 实例初始化块的代码,会被提取到、放到构造器的前面中执行
         实例变量指定初始值的代码,也会被提取到、放到构造器的前面中执行。
         上面二者到底谁在前面,取决于它们在源代码中先后顺序。

▲ 类(静态)初始化块与类(静态)变量的初始值:

类(静态)变量指定初始值的代码,会被提取到、放到类初始化块中执行。
到底放在类初始化块的前面、还是后面,取决于它们在源代码中先后顺序。

★ 8个包装类:

 Java有8个基本类型:Java一切皆对象,但这8个基本类型是例外。

为了将8个基本类型也可以当成对象使用,Java提供了包装类。

byte    ->   Byte
   
     short   ->   Short
      int     ->   Integer
      long    ->   Long
      float   ->   Float
      double  ->   Double
      char    ->   Character
      boolean ->   Boolean

 自动装箱: Java会自动把基本类型的值包装成对应包装类的实例。
                基本类型,可以自动转对应的包装类

自动拆箱: Java会自动把包装类的实例拆装成对应基本类型的值
                包装类,可以自动转对应的基本类型

    自动
       基本类型  <-------> 包装类

★ Object的两个方法:

 ▲ 重写toString()方法

 toString(): 当程序打印一个对象时候,实际上是输出该对对象的toString()的返回值。    Object默认提供toString方法,总是返回 类名@hashCode值

推荐:应该重写toString()方法,这个方法存在的意义就是被重写。

▲ 重写equals()方法

Object默认提供equals()方法,用于判断两个对象是否相等。

 ==:判断两个引用变量是否相等时,只有当两个引用变量指向同一个对象时才会返回true。
            Object默认提供equals()方法判断两个对象是否相等的标准,和==的标准完全相同。

推荐:应该重写equals()方法,这个方法存在的意义就是被重写。
            重写该方法时,就可以提供业务要求的相等的标准。

★ static修饰符:

 static:静态。就是一个标志。

有static的成员,就是类成员:    类变量、类方法、类初始化块。

无static的成员,就是实例成员:  实例变量、实例方法、实例初始化块。

---------------------------------------------------------------------------------------------------------------

 规则: 类成员不能直接访问实例成员。  静态成员不能访问非静态成员
           
      实例成员可以直接访问类成员。  非静态成员可以访问静态成员

★ final

  final可以修饰变量(成员变量和局部变量)、方法、类。   【总规则】:final可以修饰变量:表示该变量被赋初始值,该变量不能被重新赋值

 ▲ final修饰的成员变量:final修饰成员变量,必须有程序员显式指定初始值。

 final修饰的实例变量,一共可在3个地方指定初始值(只能指定一次):
         A - 定义时指定初始值。
         B - 在实例初始化块中指定初始值。
         C - 在构造器中指定。如果在构造器中为final实例变量指定初始值,必须每个构造器中都要指定。
         表面上看,有3个地方,其实最终都会还原到构造器中执行。

 final修饰的类变量,一共可在2个地方指定初始值(只能指定一次):
         A - 定义时指定初始值。
         B - 在类初始化块中指定初始值。

▲ final修饰的局部变量
        不管是否有final修饰,局部变量必须先指定初始值,然后再使用。


        final修饰局部变量之后,final局部变量只能被赋值一次。


final变量,用于保护该变量的值,无论程序如何改变,该变量始终都是最初的值。

 ▲ final修饰方法

 表明该方法不能被重写。override

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
牙科就诊管理系统利用当下成熟完善的SSM框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的Mysql数据库进行程序开发。实现了用户在线查看数据。管理员管理病例管理、字典管理、公告管理、药单管理、药品管理、药品收藏管理、药品评价管理、药品订单管理、牙医管理、牙医收藏管理、牙医评价管理、牙医挂号管理、用户管理、管理员管理等功能。牙科就诊管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。 管理员在后台主要管理病例管理、字典管理、公告管理、药单管理、药品管理、药品收藏管理、药品评价管理、药品订单管理、牙医管理、牙医收藏管理、牙医评价管理、牙医挂号管理、用户管理、管理员管理等。 牙医列表页面,此页面提供给管理员的功能有:查看牙医、新增牙医、修改牙医、删除牙医等。公告信息管理页面提供的功能操作有:新增公告,修改公告,删除公告操作。公告类型管理页面显示所有公告类型,在此页面既可以让管理员添加新的公告信息类型,也能对已有的公告类型信息执行编辑更新,失效的公告类型信息也能让管理员快速删除。药品管理页面,此页面提供给管理员的功能有:新增药品,修改药品,删除药品。药品类型管理页面,此页面提供给管理员的功能有:新增药品类型,修改药品类型,删除药品类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值