初级阶段学习总结

学习总结


1. 类和对象

    一个月来,我所做的就是编写一个个类,并用这些类创建对象,现在对于类和对象我已经有了初步的理解。

   首先,类是一个模板,用来生成具体对象。类中定义了具体对象所共有的属性(形态描述)和方法(行为和功能)。

   其次,类是一种数据类型

   创建类: public  class  ClassName{                         

                 ........
 
                 }

   创建对象通过关键字new:如果类中没有重写构造器   ClassName  cn =  new  ClassName() ; 

  

2.数据类型

   数据类型主要包括基本数据类型类类型2种。

   Java中一共有8种基本数据类型:byte,short,int,long,float,double,char,Boolean

                     所占字节数分别为:  1    ,    2  , 4 ,  8   , 4   ,    8    ,   2   ,    1

   字符串类型不属于基本数据类型,在Java中字符串类型被定义成类,但可以被直接引用。


3.值传递和引用传递

   值传递 : 在Java中,如果方法中的参数是基本数据类型,那么就是值传递,接受的是数值。当参数接受了基本数据变量所传递的值以后,就与传递这个值的标量没有关系了。下面是一个例子:

                  private  int   x = 5 ;

                  num =  method(x);

                  ...............

                  public  int   method(int  x ){

                  x *=  10  ;

                  return  x  ;

                  }

                  System.out.println("x="+x + "  num="+num);

                  运行后x=5 , num=50;


   引用传递:如果参数是一个对象,那么就是引用传递,接受的是一个对象的引用地址,指向代表这个参数的对象,任何对这个参数的改变都是对那个对象变量的改变。下面是一个例子:

                

                 SomeClass  sc = new SomeClass(5);//对对象sc的变量x赋初值5;

                 method(sc);

                 .................

                  public void method(SomeClass sc){

                            sc.setX(50);//将一个SomeClass类的对象的属性值x赋值为50 ;

                  }

                  运行后sc的属性x值为50;



4.构造器和方法

    构造器的主要作用是在创建对象的时候对其变量初始化。其格式如下:

                 public  ClassName(param1,param2...){

                  ..............

                }

    构造器名和类名必须相同,不允许有返回值,也不用void。

    构造器可以重载,即一个类可以有多个不同的构造器。

    构造器重载:每个构造器和其他构造器的参数个数或则参数次序排列不同。


    方法:方法就是对象的行为,执行对象要进行的运算与操作。格式如下:

                public  void(或者任一数据类型) method(param1,param2......){

                ...................

                }

   若方法有返回值,要满足所有情况下对返回对应数据类型的值。

 

   方法重载与构造器重载规则相同。

 

    多态 : 子类可以重写继承父类的方法,但该方法的访问权,返回类型,方法名,参数必须相同,方法的实现不同。

   



5.接口

    接口和类有所不同,类对其对象提供了具体了具体的运算与操作代码,而接口只是对实现该接口的类提供了一些协议,有点像所有实现一个接口的类共享该接口的方法与常量。接口中只规定静态常量,方法不能有实现代码

   如下是一个创建接口的例子:

                public  interface  InterfaceName{

                static  final  int  price =  8 ;

                public  void  calculateTotal(int  quantity ,int   price ) ;

                ..........

               }



6.队列

 

   队列和数组不同,数组是一组相关元素的集合,这些元素必须是相同的类型,可以是基本变量类型,也可以是对象 。

   数组一经创建,其元素类型和大小就被确定,不可以再更改。

   但是很多时候,只使用数组无法解决问题,比如通讯录的存储,无法得知要存储多少个号码,若是数组长度定义过大就

   太浪费内存,于是就有了队列。可以随意添加元素,其长度自动增加,也可以删除,在指定位置插入删除元素。队列其实

   是数组的一种运用。

 

   如下是一个基本队列的类:

 public class Que {
 private String sa[] = new String[0] ;
 
      //增添元素至最后一位
      public void add(String s){ //复制sa中的值到s2
         String[] s2 = new String[sa.length+1];
         for(int i=0;i<sa.length;i++){
          s2[i] = sa[i];
         }
         s2[sa.length] = s ;   // 将要添加的值加到s2的最后一位
         sa = s2 ;
    }
    
     //得到队列的大小
    public int getSize(){
     return sa.length ;
    }
    
    //得到指定位置的元素值
    public String  getAtIndex(int index){
     return sa[index];
    }
     
    //在指定位置添加元素    

    public void add(int index , String s){
     String[] s3 = new String[sa.length+1] ;
     int i;
     //得到index位之前sa中de元素值,复制到s3中
     for(i=0;i< index ;i++){
      s3[i] = sa[i] ;
     }
      s3[index] = s ;    //将 s 添加到 index为上
     for(i=index+1 ; i<s3.length ;i++){
      s3[i] = sa[i-1] ;
     }
        sa = s3 ;
    }
    
    //删除队列指定位置上的元素     

    public void remove(int index ){
     String[] s4 = new String[sa.length-1] ;
     int i ;
     //复制index位之前的元素到s4中
     for(i =0 ;i<index;i++){
      s4[i] = sa[i] ;
     }
     //复制index位之后的元素到s4中
     for(i=index ;i<s4.length ;i++){
      s4[i] = sa[i+1] ;
     }
        sa = s4 ;
    }
   }

   

 

 这是一个基本队列,但是每次添加一次元素,就要新建一个数组,程序运行所需的时间长,于是就有了队列的优化,使程序更加友好。比如:可以初始化数组sa的长度,设置每次队列长度的增加值。

  队列的优化问题主要要注意数组越界问题。比如,增添元素时要判断是否超出sa的长度,在指定位置删除第index个元素时要判断index是否超出队列的size等等。  由于时间有点晚了,代码我就不敲了。

 

 

7.Swing组件的继承体系

   所有的swing组件都继承于javax.swing.JComponent这个抽象类,这样做的好处就是可以规范所有JComponent类的子类的方法属性,使之拥有一些比较统一的方法

 

 

8.文件格式

   文件格式是电脑存储文件时对数据流采取的不同编码方式,不同的文件格式读入读出数据的方式不同,如果读出方式不对就读不出数据或读不到正确的数据。每个文件都有扩展名,扩展名主要用来帮助区分不同文件按格式,提示系统采用什么程序读取文件。如果扩张名与文件实际类型不同,系统读取文件就会出错。

   比如我们保存所画的图形时,依次读入形状的个数,每个形状对象的坐标,颜色的RGB值,可以把保存的图像定义为一种新的文件格式ipg,该图像系统无法读取,因为读出数据的方法不对。

  

 

  

 

 

 
   

   

    

               

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值