初始化与清理&访问权限&组合与继承&final、static

                   一.内容简介
1.初始化与清理
2.访问权限
3.继承概要
4.final,static
5.练习一

二.内容梳理
1.初始化与清理

丹凤网站建设公司成都创新互联,丹凤网站设计制作,有大型网站制作公司丰富经验。已为丹凤近1000家提供企业网站建设服务。企业网站搭建\成都外贸网站制作要多少钱,请找那个售后服务好的丹凤做网站的公司定做!

1.1构造函数
构造函数:用来初始化成员变量的函数,没有返回值,函数名与类名一致。
默认构造器:没有参数的构造函数。类中如果没有构造器,编译器会自动创建 默认构造 器。
构造函数的嵌套:可以在构造器中调用被重载的其他构造器,用 this(parameter )调用。且只可以调用一个并放在起始处。
继承中的构造函数:构造函数不会被继承,子类的构造函数自动调用父类的默认构造函数,如果父类没有默认构造函数,则手动调用父类的构造函数。super(parameter).

1.2重载
重载: 方法名相同,参数列表不同。与返回值无关,返回值无法区分,如果返回值不同,方法名相同,参数列表相同,编译出错。
重载的参数 匹配:对应类型对应匹配。如果匹配不到: (常数与char )当做int用来 匹配,其他的数据类型逐渐提升数据类型来匹配 。
重写的返回类型必须一样或协变,否则编译错误。

1.3初始化
局部变量不初始化会报错,成员变量有默认的初始化。
初始化顺序:静态优于非静态,父类优先子类,变量优先于代码块优先于构造器。

  • 初始化与清理 & 访问权限 & 组合与继承 & final、static

静态数据的初始化:静态数据属于类,只占用一份存储区域,有标准的初值。静态数据的初始化时间是(静态数据被访问或对象被创建时)

1.4清理
垃圾回收机制只释放new的内存
类内定义finalize()方法,当垃圾回收发生时,finalize()被调用

(5)可变参数列表
例子:

点击( 此处 )折叠或打开

  1. static void printArray(Object[] args){

  2. }

  3. printArray(1, 2, 3);

  4. printArray((Object[])new integer[](1, 2, 3));

——构造函数使用可变参数列表会与默认构造函数弄混

2.访问权限

1.1

类内

包内(子类与非子类)

包外子类

包外非子类

Public

√    

Protected

×

默认

×

×

private

×

×

×

1.2修饰类只有public和默认
3.继承概要
extends指明继承关系,未说明隐式继承Object.
向上转型:子类可以作为实参传入父类作为形参的方法。
this.value先找自己的成员,找不到去父类找的.
构造方法不会被继承

4.final,static
1.1 final强调不变。static强调跟随类。
1.2final
类不希望被继承
方法不希望被重写
变量不希望被改变
final修饰的值不一定是常量还是变量,DJ反编译看。

1.3static
静态变量
静态方法: 不能访问非静态成员方法和非静态成员变量
静态代码块
static不允许修饰局部变量;


5.练习一
(1)需求
——汽车销售人员销售汽车,款式有凯越,君威
——汽车与款式和编号,款式编号不可修改
——汽车销售人员有姓名
——销售人员按车型及数量销售

(2)代码
AutoType.java

点击( 此处 )折叠或打开

  1. package  biz ;

  2. public   class  AutoType  {

  3.      public   static   final   String  KAI_YUE  =   "凯越" ;

  4.      public   static   final   String  JUB_WEI  =   "君威" ;

  5. }



Auto.java

点击( 此处 )折叠或打开

  1. package  biz ;

  2. public   class  Auto  {

  3.      private   String  autoType ;      // 款式

  4.      private   String  autoNumber ;      // 编号

  5.      private   boolean  isSelled ;

  6.     Auto ( String  autoType ,   String  autoNumber ) {

  7.          this . autoType  =  autoType ;

  8.          this . autoNumber  =  autoNumber ;

  9.          this . isSelled  =  false ;      // 默认未销售

  10.      }

  11.      public   String  getAutoType ( )   {

  12.          return  autoType ;

  13.      }

  14.      public   String  getAutoNumber ( )   {

  15.          return  autoNumber ;

  16.      }

  17.      public   boolean  isSelled ( )   {

  18.          return  isSelled ;

  19.      }

  20.      public   void  setSelled ( boolean  isSelled )   {

  21.          this . isSelled  =  isSelled ;

  22.      }

  23.     

  24.     

  25. }



seller.java

点击( 此处 )折叠或打开

  1. package  biz ;

  2. public   class  Seller  {

  3.      private   String   name ;

  4.     

  5.     Seller ( String   name ) {

  6.          this . name   =   name ;

  7.      }

  8.      /**

  9.      * 

  10.      * @param autos 所用的车

  11.      * @param autoType 要销售的类型

  12.      * @param num 要销售的数量

  13.      */

  14.      public   void  sell ( Auto [ ]  autos ,   String  autoType , int  num ) {

  15. //        if(auto == null || autoType == null || num < 0) {

  16. //            

  17. //        }

  18.          int  selledNum  =  0 ;

  19.          for ( Auto curAuto :  autos )   {

  20.              int  i  =  0 ;

  21.             i + + ;

  22.              if ( ! curAuto . isSelled ( )   & &  curAuto . getAutoType ( ) . equals ( autoType )

  23.                      & & selledNum  <  num )   {

  24.                 curAuto . setSelled ( true ) ;

  25.                  System . out . println ( "准备售出-" +  curAuto . getAutoType ( )   +   "-"

  26.                          + curAuto . getAutoNumber ( ) ) ;

  27.                 selledNum + + ;

  28.              }

  29.          }

  30.          if ( selledNum  <  num )   {

  31.              System . out . println ( "库存不够。"   +   "只可售出"   +  selledNum  +   "辆"   +  autoType ) ;

  32.          }

  33.         

  34.      }

  35.      public   String   getName ( )   {

  36.          return   name ;

  37.      }

  38.      public   void   setName ( String   name )   {

  39.          this . name   =   name ;

  40.      }

  41.      public   static   void  main ( String [ ]  args )   {

  42.         Seller s1  =   new  Seller ( "小明" ) ;

  43.         Auto auto1  =   new  Auto ( AutoType . JUB_WEI ,   "001" ) ;

  44.         Auto auto2  =   new  Auto ( AutoType . JUB_WEI ,   "002" ) ;

  45.         Auto [ ]  autos  =   new  Auto [ 2 ] ;  

  46.         autos [ ]   =  auto1 ;

  47.         autos [ 1 ]   =  auto2 ;

  48.         s1 . sell ( autos ,  AutoType . JUB_WEI ,  3 ) ;

  49.      }

  50.     

  51. }


三.总结与随笔
(1)entity层:只有属性没有方法,主要用于数据跨层传输
(2)同一块作用域,局部变量优先于成员变量。
(3)char 类型可以' + ', ' - '
(4)方法传参:基本类型传值,函数内改变参数值对函数外无影响。引用类型传引用,函数内改变参数值对函数外有影响。
(5)删掉set方法,private修饰的成员变量只读

分享名称:初始化与清理&访问权限&组合与继承&final、static
URL链接:https://www.cdcxhl.com/article22/igihjc.html

成都网站建设公司_创新互联,为您提供营销型网站建设外贸网站建设搜索引擎优化网站建设微信公众号品牌网站制作

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

外贸网站建设