首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Java基础小结

2012-12-28 
Java基础总结1.java文件的基本结构编译--运行1)编译:.java源文件--Javac编译--.class文件(二进制代码)2

Java基础总结

1.java文件的基本结构

编译-->运行

1)编译:.java源文件-->Javac编译-->.class文件(二进制代码)

2)运行java程序-->Jvm装载文件-->Jvm运行类文件

?

?

2.java中的数据类型

1)基本数据类型

<1>.byte字节型??8bits

<2>.int??整 形?32bits

<3>.short短整型?16bits

<4>.long长整形?64bits

<5>.char字符型?16bits

<6>.float浮点型?32bits

<7>.double ?双精度浮点型 ? 64bits

<8>.boolean ? ?布尔型 ? ? ?true/flase

附:①自动转型:小范围的类型值可以通过赋值运算直接转换为大范围的原始类型

?? byte-->short-->char-->int -->long-->float-->double

?? ? ?②强制转型:将大范围类数据类型转化为小范围的数据类型(注:不应超过小范围数据类型的表示范围)

??

?? float f = 1003.26 ;

?? double d = f ;//自动转型

?? int ?i = (int) d ;//强制转型

?? byte b = (byte) i ;?//错误,强制转化时不应超过小范围数据类型的表示范围

???

2)数组类型:详见下文

?

3)引用类型(类类型):自定义类、java中已定义的类(所有类的父类:Object)

?? ? ? ? ? 基本类型 ? ? 类类型

?? ??int ? ---->Integer ? ? ? ? ? ?

例: ?/**

??* 定义一个整形类的对象

??* 优点:可以调用整形类中定义的函数 ?

??* 缺点:占内存多

???*/

?Integer te = new Integer(10);

????

????char ?--->Character

?? ?? ?byte ?--->Byte

?? ? ? ? ? ?... ? ? ?--->...

?

3.类与对象的关系分析

1)类是一个模板:类是一组对象的抽象,提取了这些对象的共同点,类中定义了具体对象所共有的方法和属性,通 ? ? ? ?过这个模板生成具体的对象,调用每个对象自己的方法,改变的就是具体对象的属性值

2)对象是类的具体事例:通过类,可以创建多个对象

Student st1 = new Student();

?

4.如何定义一个类:属性+方法

?

/**

?* 学生类

?* @author hpw

?*

?*/

?

public class Student {

/**

* 设置学生姓名及学号

*?

* @param name

* ? ? ? ? ? ?:姓名

* @param num

* ? ? ? ? ? ?:学号

*/

public void setName(String name, int num) {

this.name = name;

this.num = num;

}

?

/**

* 学习的方法

*/

public void study() {

scro++;

System.out.println(name + "学习中!学号为:" + num);

}

?

/**

* 玩的方法

*/

public void play() {

scro--;

System.out.println(name + "正在玩!学号为:" + num);

}

?

/**

* 统计分数的方法

*/

public void addscro() {

System.out.println(name + " 学号为:" + num + " ?学分为:" + scro);

}

?

// 学生的名字属性

private String name;

// 学生的学号属性

private int num;

// 学生的学分属性,初始化为0

private int scro = 0;

}

?

?

5.创建对象的方式

1)无参:类名+对象名 = new 类名()

?? 有参:类名+对象名 = new 类名(参数1,参数2,…)

2)类名+对象名;

?? ? 对象名=new 类名()/new 类名(参数1,参数2,…);

?

Student st1=new Student();

等价于:Student st1;

?? ? st1=new Student();

?

6.构造方法的作用,特点,构造方法与一般方法的区别

1)作用:在创建对象时,就可以初始化对象内部属性的值

2)特点:构造方法没有任何返回值的定义,而且方法名必须与类名字相同,创建对象时,构造方法只被调用一次

注:每个类都有一个默认的无参构造器,但如果重写了一个有参构造器,则无参构造器不被调用,除非在类中显示声明

3)与一般方法的区别:

①构造方法是在创建对象时被调用,而一般方法是执行对象的特定行为时被调用

②构造方法与类名相同,一般方法不能与类名相同

③构造方法无返回值,一般方法有返回值

?

7.为什么需要继承?如何去继承?继承到了什么?

8.类,抽象类,接口的特点,区别

9.方法的重载与重写

10.自动转型与强制转型

?

以上详见博文 《类的继承,接口》:http://hu19911021-163-com.iteye.com/blog/1066352

?

11.多态的理解

??1)使用多态之后,当需要增加新的子类类型时,无需更改父类,程序的可扩展性及可维护性增强

2)多态具有表现多种形态的能力

??3)对同一个指令,执行不同的操作,调用不同的方法

?

12.常用的界面开发组件

1)容器类:位于 javax.swing 下的 : JFrame(窗体类) ? JPanel(面板类)

?位于 java.awt 下的 :?Frame(窗体类) ? Panel(面板类)

2)组件类:?① javax.swing②?java.awt

?? ? ? ???JLabel?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??JLabel?? ? ? ? ? ? ? ? ? ? ? ??标签类

?? ? ??JTextField?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?JTextField?? ? ? ? ??? ? ? ??输入框类

?? ??????JButton?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?JButton?? ? ? ? ? ? ? ? ? ? ??按钮类

?? ? ? ? ? ? ? ? ? ?JComboBox?????????????? ? ? ? ? ? ? ????JComboBox?? ? ? ? ? ? ??下拉列表类

?? ? ? ? ? ? ? ? ? ?JCheckBox?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??JCheckBox?? ? ? ? ? ? ? ??复选框类

3)布局器:流式布局器 ?位于 java.awt.FlowLayout 下

?

13.事件监听机制的理解

?? ? ? 1)找到监听的事件源对象

?? ? ? 2)根据需要监听的事件实现对应的监听器接口

?? ? ? 3) ?创建监听器对象

?? ? ? 4)将监听器对象绑定在事件源对象上


// 创建一个监听器对象,即是一个鼠标监听器,又是一个动作监听器DrawListener dlis = new DrawListener(g);// 给窗体加鼠标监听器this.addMouseListener(dlis);// 给按钮加动作监听器line.addActionListener(dlis);rect.addActionListener(dlis);oval.addActionListener(dlis);selectColor.addActionListener(dlis);

14.数组

1)一维数组:int t[] = new int[10]; ?? ? ? ? ? ??int t[] = new int[]{1,2,3,4,5,6}; ?? ? ? ? ? ? ? ? ?int t[] = {1,2,3,4,5,6}; 2)二维数组:int[][] a = new int[10][8];?? ? ? ? ? ? ? ? ? ? int[] a[] = new int[10][8];

?

15.队列:长度可变的数组

?

private String[] str=new String[0];/** * 往数组中添加元素 * @param s:添加的元素 */public void add(String s){//使数组元素+1String[] str1=new String[str.length+1];//将添加的元素放到最后str1[str1.length-1]=s;for(int i=0;i<str.length;i++){str1[i]=str[i];}str=str1;}/** * 获取数组元素 * @param index:要获取的下标 * @return */public String get(int index){String s=str[index];return s;}/** * 求数组的长度 * @return */public int size(){return str.length;}/** * 移除数组中的一个元素 * @param index */public void remove(int index){String[] str1=new String[str.length-1];//下标前的元素for(int i=0;i<index-1;i++){str1[i]=str[i];}//下标后的元素for(int i=index-1;i<str.length-1;i++){str1[i]=str[i+1];}str=str1;}/** * 向数组中插入一个元素 * @param s:要插入的元素 * @param index:要插入的下标 */public void insert(String s, int index){String[] str1=new String[str.length+1];//下标前的元素for(int i=0;i<index;i++){str1[i]=str[i];}str1[index]=s;//下标后的元素for(int i=index;i<str.length;i++){str1[i+1]=str[i];}str=str1;}/** * 修改指定位置的元素 * @param s:修改后的元素 * @param index:要修改元素的下标 */public void modify(String s,int index){str[index]=s;}

?

?

泛型队列:

?

private Object[] str=new Object[0];/** * 往数组中添加元素 * @param s:添加的元素 */public void add(E e){//使数组元素+1Object[] str1=new Object[str.length+1];//将添加的元素放到最后str1[str1.length-1]=e;for(int i=0;i<str.length;i++){str1[i]=str[i];}str=str1;}/** * 获取数组元素 * @param index:要获取的下标 * @return */public E get(int index){E e=(E)str[index];return e;}/** * 求数组的长度 * @return */public int size(){return str.length;}/** * 移除数组中的一个元素 * @param index */public void remove(int index){Object[] str1=new Object[str.length-1];//下标前的元素for(int i=0;i<index-1;i++){str1[i]=str[i];}//下标后的元素for(int i=index-1;i<str.length-1;i++){str1[i]=str[i+1];}str=str1;}/** * 向数组中插入一个元素 * @param s:要插入的元素 * @param index:要插入的下标 */public void insert(E s, int index){Object[] str1=new Object[str.length+1];//下标前的元素for(int i=0;i<index;i++){str1[i]=str[i];}str1[index]=s;//下标后的元素for(int i=index;i<str.length;i++){str1[i+1]=str[i];}str=str1;}/** * 修改指定位置的元素 * @param s:修改后的元素 * @param index:要修改元素的下标 */public void modify(E s,int index){str[index]=s;

}

?

18.值传递与引用传递的理解

1)值传递:通过复制号(=)进行传递,传递后双方不再建立有联系,一方的改变不影响到另一方

2)引用传递:引用传递传递的是地址,传递完成后,双方地址相同,一方发生改变,因地址相同,另一方也 ? ? 会发生相应的改变

?

?

?

?

?

?

热点排行