java总结

总结


1.java基础入门
Java的基本语法
定义类格式:public class 类名{}
定义变量的格式(变量属于方法或者循环添加等{}中间的变量):
数据类型 变量名;
数据类型 变量名 = 值;
属性是类的一级变量。
定义for循环的格式:for(数据类型 变量名= 值;条件;自增量或者自减量){   //程序体  } 
定义if语句的格式:if(条件){  //程序体  }else if(条件){  //程序体  }
使用for和if语句的时候,如果只有一个语句就不加{}。


编写java时应该注意的几点:
1.文件名必须和类名保持一致
2.Java中区分大小写
3.Java的命名规则:
1).命名类的名字时,首字母要大写,如果类名是由多个单词组成,则每个单词的首字母都要大写;
2).方法名和变量名命名时,首字母要小写,如果方法名或变量是由多个单词组成,则从第二个单词起,每个单词的首字母大写;

3).常量的命名时,所有的字母都要大写且每个字母之间用下划线_分开.




Java的基本数据类型
字节型 byte
整型 int
短整型 short
长整型 long
字符型 char
浮点型 float
双精度 double
布尔型 boolean
字符串 string




2.类和对象
对象:万事万物都是对象。
对象由特征和行为组成。

类:具有相同特征和相同行为的对象的集合。
类由属性和方法组成。
类是一种自定义的数据类型。
类的结构:public class 类名{
//属性
//属性的结构
Private 数据类型 变量名;
Private 数据类型 变量名 = 值;
//构造函数
Public 类名([参数类型 参数名,......]){ 
      //赋值操作
} 

//方法 

//方法的结构
Public 返回类型 方法名{ 
      //程序体

}





方法传递参数
1.基本的类型
2.自定义的类类型

方法重载
必要条件:
1.方法必须要在同一个类中间。
2.方法的名字必须要相同
3.方法所带的参数个数或者数据类型要不同
调用了实现了方法重载的方法时,是根据参数的个数或者参数的类型,来决定究竟要调用哪个方法的。

方法的分类:
1.按照有无返回值来分:
1).有返回值的方法
2).无返回值的方法
2.按照有无参数来分:
1).有参数的方法
2).无参数的方法

构造函数
构造函数是一种特殊的方法。
定义格式:public 类名([参数类型 参数名,......]){ //赋值操作 }

用途:
1.给属性赋值
2.用来创建对象

 

注意:当重写了类的构造器后,系统默认的构造器就不能用了。

特殊的几点(和普通方法的区别)
1.没有返回类型
2.函数名和类名要保持一致
3.构造函数只有在创建对象的时候才被执行一次,其他时候都不可被使用。

This关键字
用途:
1.用来区分变量和属性
2.用来表示当前的对象(是哪一个对象在调用方法,则this表示的就是调用方法的对象)

值传递和引用传递
值传递:适用于所有的基本数据类型
值传递:将目标变量的值重新拷贝一份,传递到新的变量中,这样就形成了两份独立的数据。如果对新的变量的值做任何修改,是不会影响到目标变量的值;反之一样。

引用传递:适用于所有的类类型。(自定义的类类型)
引用传递:创建对象的时候,对象名中保存的是对象实例在内存中的地址,如果对对象名做修改,对象实例是不会受到影响的。



3.类的继承
为什么要继承
降低工作量,降低程序的复杂性,使程序提高可扩展性......

继承的实现
一个类继承另一个类的关键字是:extends
继承的格式:public class 子类名 extends 父类名{}

继承到了什么
子类继承到了父类的所有公有属性和公有方法,构造函数是不能被继承的。

方法的重写
方法重写:保持方法的定义不变,但方法内部实现同父类中不同。
实现方法重写的必要条件:
1.必须要有继承关系;
2.子类的方法名必须和父类的方法名一致,子类重写方法所带的参数必须和父类方法中所带的参数一致。

在实现了继承的前提下,调用时会优先执行子类中的方法,如果子类中不存在该方法,则使用父类的方法。

自动转型
自动转型的必要条件是有继承关系。
自动转型的格式:父类名 对象名 = new 子类构造函数([参数类型 参数名,.......])
子类向父类转型是自动的。

多态实现
多态实现的前提条件:存在继承关系和方法重写。
多态:jvm在调用方法时,是不确定调用的是子类的方法还是父类的方法,只有在调用的瞬间才知道调用的是谁的方法。

接口的定义
接口定义的格式:public interface 接口名{
//定义常量的语法
Public static final 常量名 = 值;

//定义方法的语法
Public 返回类型 方法名([参数类型 参数名,.......]);

}
接口是用来定义方法的,所定义的方法是没有程序体的,如果要实现接口,则必须要重写接口中定义的方法。
接口中的每一个方法都必须是公有的,并且没有{},只能有;.
接口中的属性都必须将其定义为常量。
接口是不可以用来创建对象的,不能使用关键字new。
可以将接口作为对象名的类型。
接口名 对象名 = new 实现接口的子类构造函数([参数类型 参数名,.......]);

接口的实现
接口实现的格式:public class 子类名 implements 接口名{ 
      //子类必须重写接口中定义的方法
}

接口的继承
接口可以继承到另外的接口.
接口继承的格式:public interface 子接口名 extends 父接口名{
       //如果父接口中定义了方法,子接口可以不重新定义
}

抽象类的定义
抽象类是介于接口和类之间的一种新类。
抽象类定义的格式:public abstract class 抽象类的名字{
       //可以实现方法,也可以不实现方法
Public 返回类型 方法名([参数类型 参数名,.....]){ 
       //程序体
}
Public abstract 返回类型 方法名([参数类型 参数名,.....]);


}

如果子类实现了抽象类,但是抽象类中定义了抽象的方法,则子类必须要重写抽象方法,已被实现的方法,可以不重写。

抽象类的实现
抽象类的实现格式:public class 子类名 extends 抽象父类名{
      //程序体
}


4.画板的实现
所有的类的父类:object

Swing组件的分类
窗体类:javax.swing.JFrame
标签类:javax.swing.JLabel
文本输入框类:javax.swing.JTextField
按钮类:javax.swing.JButton


布局管理
分类:
流式布局管理器:java.awt.FlowLayout
边框布局管理器:java.awt.BorderLayout
卡片布局管理器:java.awt.CardLayout
网格布局管理器:java.awt.GridLayout
网袋布局管理器:java.awt.GridBagLayout



Swing的事件机制
事件:事件处理是界面处理的基本功能
事件处理的流程:事件源、事件处理对象、事件处理过程。
处理方法:编写一个类实现事件接口,并实现其中的方法即可。



5.自定义队列
数组的基本用法
数组是Java中最基本的一种数据结构,一旦定义,它的长度就是固定的,不能再改变。
取得数组的长度的语句:数组名. Length
取得数组中某一位置的值的语句:数组名[ 索引值]

定义数组的方法
1.定义时指定数组长度,这样会使用内存空间创建数组对象,但数组中每个位置的元素会是其默认值,如是原始类型,默认值为0,如是引用类型,默认值为null;
定义格式:类型[] 数组变量名 = new 类型 [长度];
2.创建数组时就给数组中的元素赋值;
3.仅定义一个数组变量名,然后再来赋值。

数组也是一个对象,数组对象本身的类型就是数组类型,定义数组时,一定要指明数组中所装元素的类型。要注意的是,当仅定义了一个数组变量时,是不能使用这个数组的。


数组的排序
排序是一类常用的算法实现。
四种排序方法:冒泡排序法、选择排序法、插入排序法、希尔排序法。

多维数组
Java语言中并没有像其他语言那样定义多维数组,只是定义了数组的数组、数组的数组的数组.......
一个二维数组其实就是数组的数组。
数组的数组的定义格式:类型  数组变量名[][] = new 类型[长度][长度]
数组的数组中的每一个元素其实就是一个一维数组。

自定义对队列的实现
队列可以理解为一个维数可变的数组。
队列的定义接口格式:
Public interface 接口名{


//向队列中加入一个对象
Public void add(类名 对象名);


//取得队列中指定位置的一个对象
Public 类名 get(int  index);


/./得到队列的长度,即队列中元素的个数
Public int size();
}

简单实现
实现队列的思路:在实现类的内部,还是使用数组保存装入队列的对象;每次新加入对象时,则创建一个比原来数组长度大于一的数组。



泛型
泛型:就是在创建队列时,指定队列中所存放对象的类型。
改变接口的定义:
Public interface  接口名{


//向队列中加入一个对象
Public void add(E  e);


//取得队列中某一指定位置的对象
Public  E  get(int index);


//得到队列的长度,即队列中元素的个数
Public int size();
}




6.JTable与TableModel
在界面上加上一个简单的JTable对象: JTable table = new JTable(m,n)............m和n是int型,
这样就在界面上得到了一个m行n列的表格

JTable只是一个界面,主要负责显示功能,而关于数据提供和数据操作的实现,都是由这个JTable对象的TableModel对象所负责的。

TableModel就是一个接口,它的定义格式:
//通过调用JTable对象的setModel方法,传入实现了TableModel接口类的对象
Public interface TableModel{


//决定表格上显示多少行
Public int getRowCount();


//表格显示多少列、
Public int getColumnCount();


//得到某一列的列名,columnIndex:列的序号,从0开始
Public String getColumnName(int columnIndex);


//得到某一列的数据类型,columnIndex:列的序号,从0开始
Public Class getColumnClass(int columnIndex);


//某一单元格在界面上是否可直接编辑,rowIndex:行号,columnIndex:列好,从0开始
Public boolean isCellEditable(int rowIndex,int columnIndex);

 

//具体的JTable在显示时,调用这个方法取得每一个单元格的值
Public Object getValueAt(int rowIndex,int columnIndex);


//如果表格可编辑,表格对象将调用这个方法将改变后的值反映到它的model对象中
//aValue代表修饰后的值,rowIndex,columnIndex表示所在的行列索引
Public void setValue(Object aValue,int rowIndex,int columnIndex);


//模型对象可调用这个方法为自己加入一个监听器
Public void addTableModelListener(TableModelListener l);


//移除模型对象中的监听器
Public void removeTableModelListener(TableModelListener l);
}

实现:
根据该接口,只需要编写一个实现了TableModel的类,通过代码:
javax.swing.JTable table = new javax.swing.JTable();
table.setModel(new 实现了TableModel接口的类);

 

你可能感兴趣的:(总结类)