到蓝杰已经学习了近2个月了,已经在做五子棋的设计了。
今天就把之前学习的一些基础性的东西做一下总结(写的不好请见谅O(∩_∩)O哈!)
1.java文件的基本结构,编译-->运行过程
1.java文件的基本结构,编译-->运行过程
每个java文件都是一个类(或者接口),java的程序是由一个或者多个类(接口,抽象类)组成,但是所有这些类中只能有一个main函数。java文件的后缀为.java,可以在cmd命令行中输入cd命令切换到源代码所在文件夹下,并通过
javac ***.java
来编译程序,此时代码将被转换为与硬件平台和操作系统无关的二进制码(.class),然后用
java ***
来运行此java程序。

2.基本类型:int char byte float double short long boolean
java的基本类型中的几个与C/C++的数据类型不一样,它在不同的系统中大小完全一样,short和char类型为16bits,int和float类型为32bits,long和double为64bits,而特殊的boolean型只有1位。
数组类型:
引用类型(类类型):
如这个语句 javabasic jb = new javabasic();
引用类型即new一个东西,在堆内存中为他申请一块空间,javabasic jb则是在栈内存中为jb申请了一块空间,而其中的=则把堆内存的地址赋给jb的值。所以说引用类型传递的并不是new的javabasic()的值,而是它的地址。
以下是各个数据类型在java.lang中对应的类;
int ---->Integer Integer te = new Integer(10); int t=10;
char--->Character
byte--->Byte
... --->...


3.类与对象的关系分析
类是具有一些相同属性和方法的抽象事物,而对象是类的实例化,是类的具体表现。

4.如何定义一个类(属性,方法)
定义一个类,需要确定它的名字,并给予其属性与方法
定义类时给予它访问限定符(如public),即:
public class ***{
}
在其中应该按照需要定义属性和方法(下为示例)
属性:private int a;
方法:public int b(int x){
}(对于有返回类型的需要在大括号中有return语句)

5.创建对象的方式 : new 构造器;
每个类中都默认有一个构造器(与类名相同,不显示出返回值),所以在创建对象时,可以用这个来new出一块空间,存放对象的数据,具体方法为:
ClassName abc = new ClassName();

6.一个对象只能调用在其定义的类及其父类中声明了的方法

7.构造方法的作用,特点,构造方法与一般方法的区别
构造方法的名字与类名相同,不写出返回值(实际上返回值为创建的对象在堆内存中的地址),可以给他传入参数。构造方法的作用在于构造类的对象,并且在创建时就给类传入参数。一般的方法都要求写出返回值类型(或注明无返回值类型void),而且一般函数不能与类名相同。


8.为什么需要继承?如何去继承?继承到了什么?
因为如果我们已经定义了一个类,但是我之后我们又要用到一个其中具体方法和属性与这个类不尽相同的类,那么我们可能需要再次定义一个类。而在此过程中我们就可能必须将我们已经写过的代码再写一次,这是一种无用功,也会占用不必要的内存空间,而且计算机作为反映现实的工具,与现实一样有继承才能更好的反映现实,作用于现实。所以我可以通过继承来避免这些问题。
通过关键字extends可以继承,具体如下:
public class A extends B{
}
通过继承子类得到了父类的属性和方法。

9.类,抽象类,接口的特点,区别
继承的类别有以下3种
1类继承类
public class A {}
public class B extends A{}
2类继承抽象类
public abstract class C{}
public class D extends C{}
3接口继承接口
public interface E{}
public interface F
public interface G extends E,F{}
下面是实例化的方法
public class H implements E{}
public abstract class J implements E{}
public class K extends A implements E,F{}


10.方法的重载与重写?
方法的重写是指 一个类继承了父类,并在自己的类体中将方法的方法体进行了改变,但是方法的定义不变(包括方法的名称,返回值和形参)
方法的重载是指在一个类中多次使用一个方法名,但是它们的返回值,形参和方法体都不相同

11.自动转型与强制转型?

12.多态的理解?
相同类型的对象调用相同的方法的时候,由于继承,重写以及重载的机制,得到的结果不一定相同 ,比如在画图板的程序中体现的就尤为突出。

13.常用的界面开发组件
java.awt是包含用于创建用户界面和绘制图形图像的所有类,AWT 所提供的图形功能是各种通用型操作系统所提供的图形功能的交集。
javax.swing是在AWT的基础上构建的一套新的图形界面系统,它提供了AWT 所能够提供的所有功能,并且用纯粹的Java代码对AWT 的功能进行了大幅度的扩充。


容器组件 JFrame,JApplet,JDialog,JPanel(轻量级容器)
元素组件

14.事件监听机制的理解
1) 找到监听的事件源对象
2)根据需要监听的事件实现对应的监听器接口
3) 创建监听器对象
4)将监听器对象绑定在事件源对象上

15,常用的监听器:
ActionListener
MouseListener
MouseMotionListener
MouseWheelListener
KeyListener


16.数组:
数组的定义方法
int t[] = new int[10];
int t[] = new int[]{1,2,3,4,5,6};
int t[] = {1,2,3,4,5,6};
int[][] a = new int[10][8];
int[] a[] = new int[10][8];
17自定义队列实现:长度可变的数组

public class QueueRealize<E> implements queueinterface<E>{

	//定义算法中的元素
	private Object[] a = new Object[0];

	/**
	 * 给队列增加一个元素的方法
	 * @param s :增加元素的值
	 */
	public void add(E e){
		//创建一个比原数组大小大1的新数组
		Object[] b = new Object[a.length+1];
		//将新元素加入新数组中
		b[b.length-1]=e;
		//将原数组中的元素依次拷贝到新数组中
		for(int i=0;i<b.length-1;i++){
			b[i]=a[i];
		}
		//将新数组的地址给予原数组
		a=b;
	}

	/**
	 * 得到一个指定的元素
	 * @param index :指定元素的下标
	 * @return 
	 */
	public E getData(int index){
		E str =(E) a[index];
		return str;
	}

	/**
	 * 返回队列的大小
	 * @return
	 */
	public int retSize(){
		int p = a.length;
		return p;
	}

	/**
	 * 将一个元素插入队列指定位置
	 * @param s :元素的值
	 * @param index :要插入位置的下标
	 */
	public void insert(E e,int index){
		//创建一个比原数组大小大1的新数组
		Object[] b = new Object[a.length+1];
		for(int i=0;i<a.length;i++){
			if(i<index)
				b[i]=a[i];
			else
				b[i+1]=a[i];
		}
		b[index]=e;
		//将新数组的地址给予原数组
		a=b;
	}

	/**
	 * 修改队列中一个元素的值
	 * @param s :元素的新值
	 * @param index :要更改的位置的下标
	 */
	public void modify(E e,int index){
		a[index]=e;
	}

	/**
	 * 弹出队列前端的元素
	 * @return
	 */
	public E pop(){
		E str = (E)a[0];
		//创建一个比原数组大小小1的新数组
		Object[] b = new Object[a.length-1];
		for(int i=0;i<b.length;i++){
			b[i]=a[i+1];
		}
		//将新数组的地址给予原数组
		a=b;
		return str;
	}
}




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


值传递即:


int a=10;


int b=a;


b=5;


且此时a任然为10,因为在b=a的过程中只是将a的值给予了b


引用传递与前面引用类型的解释相似,即在传递时将a的地址


存储在了b的内存位置里,当b改变事a也会改变。