Java学习笔记(九)

来源:互联网 发布:儿童手机保护软件 编辑:程序博客网 时间:2024/05/20 21:22
一、回顾
内部类:就是定义在另外一类中的类
分类:成员内部类,静态内部类,匿名内部类
1、成员内部类:相当于所在内的一个函数,可以被public、default、private修饰
  在其内部不能定义静态资源,常量除外,可以访问所在外部类的所有资源。
  1-1、成员内部类的对象:
       先实例化所在外部类的对象,然后通过外部类对象来调用内部类的构造方法,
       来实例化对象。
2、静态内部类:是在定义类的时候前面加static 关键字,可以被public、default、
  private修饰。
  1-1、内部可以有静态资源。
  1-2、静态内部类内部方法访问内部资源时,遵循和外部类一样的原则(静态方法只
       能访问静态资源)。
  1-3、静态内部类内部方法访问外部类资源时,只能访问静态资源。
 题目:自定义一个外部类,在其中分别定义成员内部类,静态内部类,分别感受访问修
       饰符在内部类中的特征,静态资源的应用,以及内部类访问外部类资源的功能特
       征(特别是有重名的属性),在测试类中分别创建成员内部类和静态内部类的对
       象,进而使用他们的功能。
 3、匿名内部类:没有名字的类,匿名类无法重用,主要是使用它的对象,实际上是得
    到一个对象的同时而创建的一个匿名类,匿名类的使用我们着重关注对象。
    语法:
    InterfaceName object=new InterfaceName(){
    //是必须实现的行为
    };
    或者:
    SupperAbstractClassName object=new SupperAbstractClassName(){
    
    //是必须实现的行为
    };
    排序时,比较器;
    事件处理中监听器;
 4、内明内部类在GUI中的应用:
  awt组件:重组件,其中的控件是用C或者C++语言开发,速度慢,效率低。
    swing组件:轻组件,其中的控件是用java语言开发,速度快,效率高。
    由于历史的原因,有些事件还编排在awt包中。
    4-1、创建一个自定义的窗体程序:
         JFrame类,窗体的父类
         public class MyFrame extends JFrame{
          //属性: 自定义窗体所具有的特征,比如有那些控件,摆放位置,以及
                 背景色等。
          public MyFrame(){
           //对于属性中声明的属性,进行详细的初始化设计。
          }
          //行为
         }
    4-2、让指定控件可以接收我们的触发,并作出反映。
         事件:是窗体程序的一种触发机制。例如:鼠标单击,鼠标双击,鼠标拖拽,
               键盘按下,键盘弹起等等。是程序中某种事情的发生。                
         事件源(控件):由谁引起了某种事件。    
         事件处理程序:当某种事情发生时,如何应对。
         
         监听器:专门负责某种事件监听的对象,进而可以有针对处理。
                 每种事件都有对应的接口(就是发生某种事件时,都有哪些处理行为)。
                 自定义一个类型,然后实现相应的事件接口,那么该类对象就有资格
                 作为该事件监听器了,运用事件处理程序完成时间处理。
                 
                 
         绑定:为事件源(控件)指定事件处理监听器。
         
         实现事件监听处理:
         1、先确定事件源-->
          被触发者(控件)
         2、创建监听器类(实现了指定事件接口的类)-->
            public [static] class XXXHandler implements InterfaceName{
                方法的实现;
            }
            InterfaceName handler=new InterfaceName{
                方法的实现;
            };
            
         3、事件源和监听器(new 监听器类())绑定。
         绑定语法:
         事件源对象.addXXXInterfaceName(new XXXHandler());
         事件源对象.addMouseListener(new 监听器类());
  5、基本数据类型:
     int  short long float double byte boolean char
     包装类:对于每种基本数据类型,都有对应的引用型的类型,既包括对应基本数据
             又有扩展的属性和行为。
     int     short long float double byte boolean char
     Integer Short Long Float Double Byte Boolean Charater
     5-1、装箱:基本类型-->引用型
          自动装箱:由系统编译器完成
     5-2、拆箱:引用型-->基本类型
          自动拆箱:由系统编译器完成
     5-3、包装类对象创建语法:
          1)XXXName XXXObj=new XXXName(基本数据类型的值或者字符串);
          2)XXXName XXXObj=基本数据类型的值;//自动装箱
     5-4、从包装类对象中取出数据的方式:
          1)显式的:包装类对象.XXXValue();
          2)自动的:直接使用包装类对象进行运算;//自动拆箱
 6、枚举类:其中主要包括常量。
    意义:确定值的范围,常量的命名都是字符串(明确意义)可以定义在另外的类中。
    语法:
    访问修饰符 enum 类名{
    常量;
    属性?;
    行为?;
    构造方法?;
    }
    //color.ordinal() 返回值是常量的索引值,索引值从0开始。
    
    题目:自定义一个季节枚举类,每个季节包括对应的三个月(firstMonth,
    secondMonth,thirdMonth),可以有自定义构造器,可以有set,get方法,
    自定义测试类,用到季节枚举对象,另外, 感受一下java中switch结构
    适用于枚举。
 7、访问修饰符
    public 公开的:所在的类,同一个包中的类,其他包中的类都可见。
    private 私有的:所在的类可见,其他类都不可见。
    default 默认的:所在的类以及同一个包中的类可见,其它包中的类不可见。
    protected保护的:所在的类、同一个包中的类,以及子类中可见。

0 0