java总结

          Java   45月 总  结

一 知 识 要 点

***********************************************

1:数据类型

 

2String

 

3:数组与队列

 

4:类与对象

 

5:继承

 

6:图形界面

 

7:重绘

 

8:五子棋

 

 

 

二 展开知识要点

**********************************************

--------   数据类型

Java 中的数据类型可分为基本类型、类类型(严格地讲数组类型也属于类类型)

基本类型可分为byte(字节型)int(整型)、short(短整型)long(长整型)char(字符型)float(浮点型)double(双精度)boolean(布尔型)

与之相对应的类类型为ByteIntegerShortLongCharFloatDouble

注意:1java中的布尔型boolean的变量仅有2个,即turefalseturefalse不能转换成任何数值表示,java中的ture不表示1false不是0,不参与算数运算

      2:对于类中定义的原子类型变量,若未给出初

值,那么他们将有默认值,但在方法内定的局部变量应当对其赋值。

 

 

---------   String

1:对象创建

方法一:String类和其他类一样,可以用new操作符,并调用该类的构造函数创建这种类型的对象。

程序截取示例:

public String char  value[ ]) {

char a[ ]={s’‘o’‘n’‘g};        //字符数组

String str=new String(a);        // 字符串str的内容是song

 

}

方法二:采用字符串常量初始化一个String引用类如:String st=abc”;

        等价于  char date[ ]={a’‘b,c}; String str=new String(data);

2: String类常用方法

** 求得字符串的长度的方法

程序截取示例:

public int length( ){

String str=Java;

System.out.println(str.length( ));

注意:不要将该方法与获取数组长度的方法混淆了,获取串的长度是采用了方法length( ),而获取数组长度是通过实例变量length,即:数组名.length

 

**  对字符串内容进行比较

程序截取示例:

public int compareTo(String  another String ){

String  str s[ ]={ Computer”“China”“world”“U.S.A }

s[1].compareTo s[2]

 

}

 

**  将参数对象连接到调用对象的后面

程序截取示例:

public String contact(String str){

String  s1=Hello”, String  s2=Java”,s3;

s3= s1. contact(s2);

System.out.println(s3);

 

}

 

**   String对象中的所有oldChar字符替换为 newChar,并返回替换后的新串

程序截取示例:

public String replace(char oldChar, (char newChar ){

String path=my duty;

System.out.println(path.replace(me));

}

*值传递与引用传递的区别

1:值传递传的是值,而引用传递传的是地址

2: 值传递所传数值之间相互独立,而引用传递“牵一发而动全身”

例:int i=10; 

int y=i;

y++;

(此时i仍为10

Student  s1;

s1.setName(“张三”)

Student  s2;

s2=s1;

S2.setName(“李四”)

(此时s1将变为李四)

 

---------    数组与队列

(由于一维数组有二维数组相似,此处只对一维数组进行总结)

数组:

1:数组变量的声明

数据类型  数组名=new数据类型[ length]

例:int[] Array=new int[ length];

注意:数组一旦创建好,大小就不能再改变

2:数组的初始化

方法一:根据下标依次赋值

int[ ] a=new int[2];

int[0]=10;

int[1]=20;

方法二:在列表中直接赋值

int[ ] a={1020}

 

2:向方法传递数组

程序截取示例:

{

int [ ] data 1={1,2,3};

System.out.println(data1:+sum(data1));

}

//sum the element in a array

static int sum(int [ ] a) {

int sum=0;

for(int  i=0;i<a.length; i++)

sum=sum+a[i];

return sum;

}

队列:

(因为数组的大小在创建的时候已经固定了,想要改变数组的大小已经不可能了。这时候使用自定义队列来实现。队列可以无限制的扩展存储空间,但是扩展的空间必须小于内存的存储范围。)

1:自定义队列的实现

   使用数组来实现队列.

1.定义一个接口,用来定义实现自定义队列的所有方法(后文将对接口进行解释)

2.定义一个类实现该接口,并且重写接口中的所有方法;定义一个原始数组 array

 定义一个统计队列的总长属性 count

2:队列接口中常涉及到的方法(用泛型进行优化)

    定义一个添加元素的方法

    public void add(E element);

//定义一个在指定索引位置的地方添加一个元素

public void add(int index,E element);

//定义一个删除指定索引位置的元素方法

public Object remove(int index);

//定义一个删除指定元素的方法

public Object remove(E element);

//定义一个修改指定索引位置的元素值

public boolean update(int index);

//定义一个修改指定元素的值

public boolean update(E oldElement, E newElement);

//定义一个返回队列总元素个数

public int count ();

//定义一个获取指定索引位置的元素方法

public E ele (int index);

}

 

---------    类与对象

1:定义:简单的说,类就是对象的抽象,而对象即类的实例

2:类的定义格式:class className

3:对象的创建  

    类名  对象名=new  类名();

4:通过对象名调用方法

    对象名.方法名();

 注意:类名的首字母要大 ;类名要有一定的实际意义对象名不可与关键字或特殊符号相同;

 

---------    继承(关键字  extends)

**   子类可以从父类继承所有的方法和域,也可以在增加新的域和方法。子类还可以进行方法的重写。

程序截取示例:(进行比较)

Class Person {             

Person(Stringname){       

this.name=name; }                                                    

public String tostring( ){ 

return ("Name:"+name); }                       

                                             

class Student{

Student(Stringname){

 super(name) ;}     

public String tostring( ){

return(super.toStrng"Name:"+name+"\n"+"college:"+college);

  }

由比较可知:1:构造函数绝不能继承。 构造函数可以调用超类中的构造函数,调用形式和方法调用差不多,但方法之前要有关键字super。                                        

 2:重写父类方法时可以访问父类的该方法,但要用关键字super。                                         

**   方法重载

 方法重载的要求    

一个函数的函数名与另一个函数的函数名相同,但是它们的参数列表中的参数类型,个数,顺序至少有一项不同

**     继承所涉及的“自动转型”

原则:有父类对象的地方就可以用子类对象替换父类对象。(因为子类对象可以访问父类的所有方法)

     转型法法1:父类名  父类对象=子类对象;                                              

     如:Person  any person= student;

          System.out,println(any person.toString( ));                                                

     (注意 :实际上调用了Student类的toString( )方法)

 转型方法2:  父类名   父类对象=new  父类名();                                                      

              父类对象.方法名();

              父类对象=new 子类名();

              父类对象.方法名();

如:(父类为SuperClass,子类为SubClass,父类有print( )方法,子类重写了该方法)

     SuperClass  s=new SuperClass(); 

     s.print( )

     s=new SubClass(); 

     s.print( )

    (  实际上是父类调用了父类的print( )方法,子类调用了子类的print( )方 法 )

**    抽象类(关键字   abstract  )

      抽象类要定义派生类的公共属性,但它自身不能创建对象

      定义格式:

       abstract  class-name

**     接口(关键字 interface

      注意:1:可以把接口视为纯抽象类,接口只能有抽象方法和常量

            2:接口方法不能使静态方法

            3:接口中只能有public的方法

       程序截取示例:

        Intetface   Living {

        public  void computeNeighbor(   ) ;

         Count  getCount( );

 

          }

---------    图形界面

**        用于监听或响应按钮压下事件的步骤总结如下:

      1:用 new JButton("some  lable")创建一个按钮

      2:用addJFrame的内容窗体中添加按钮

      3:创建一个监听器,并给该监听器绑定一个类  

   的对象,该类将继承另一个类以实现实现指定方法 

      4:给按钮添加监听器

 程序截取示例:

        public class DrawFrame extends JFrame {

      public static void main(String[] args) {

  //创建桌面窗口

          DrawFrame df = new DrawFrame();

   df.initial();

 

     // 设置颜色按钮

javax.swing.JButton buttoncolor = new javax.swing.JButton("颜色");            

     // 给按钮添加监听器

           buttoncolor.addActionListener(al) 

         

        //创建监听器

         ml = new DrawListener(g);

   

this.addMouseListener(ml);

        }

  //  DrawListener  类 继承 另一类以实现指定方法

 

Public classDrawListener extends java.awt.event.MouseAdapter {

(省略了程序)

}

---------     重绘

 重绘利用于画板和五子棋中,主要利用了类的封装特性。

public class Graph 

//封装属性

private int x1,y1,x2,y2;

private Color color;

private String type;

}

 重绘即重写了超类的paint方法,用队列来保存数据

public void paint(java.awt.Graphics g) {

super.paint(g);

if (ml != null) {

LiveImplements<Graph> list = ml.getList();

// 获得队列元素

for (int i = 0; i < list.count(); i++) {

Graph gra = list.ele(i);

// 开始判断之前画的图形类型是直线还是其他的图形

if (gra.getType().equals("Line")) {

// 设置颜色

g.setColor(gra.getColor());  

// 重绘图形了

g.drawLine(gra.getX1(), gra.getY1(),    

              gra.getX2(),

gra.getY2());

---------     五子棋

五子棋是在画板的基础上发展的,也利用了重绘和接口的知识。此处不做详细说明

<!--EndFragment-->

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(java,swing,J#)