总结java基本学习

总结java基本学习

1. java基础入门
a) 环境变量的配置
变量名:Path 变量值:D:\Program Files\Java\jdk1.6.0_18\bin
b) 对类名、属性名、方法名以及常量名命名的时候需要注意什么?
不能以关键字来命名,要有特定含义。
类名:类名的首字母要大写,如果由多个单词组成,则每个单词的首字母要大写,只能包含数字字母和下划线,开始只能以字母或下划线开头。
属性名:第一个单词的字母要小写,如果由多个单词组成,则从第二个单词开始的每个单词首字母要大些,只能包含数字、字母和下划线,开始只能以字母或下划线开头。
方法名:和属性名的定义式一样的。
常量名:每个字母都要大写。
c) 定义类名必须要和什么相同?
类名必须和文件名相同,包括大小写(java是区分大小写)。
d) Java编译和运行的命令与格式?
编译的命令:javac 文件名.java
运行的命令:java 文件名
e) Java中的基本数据类型
int 32位
short 16位
long 64位
double 64位
float 32位
boolean true和false
byte 8位 -128-127
char 16位
char c = ‘中’;
每一个基本数据类型,都有一个对应的封装类型,位于java.lang包下。
f) Java中有哪几种数据类型?
1.基本数据类型(原始类型)
2.引用类型(类类型,对象类型)
g) String的常用方法有哪些?
1.String是用class定义的类,但是因为String会经常用到,在JDK中对String做了特殊处理,它的使用方式和基本数据类型是一样的。
2.查看String的API文档,把常用的方法总结出来。
答:String 类代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现。
字符串是常量;它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。因为 String 对象是不可变的,所以可以共享。
String 类包括的方法可用于检查序列的单个字符、比较字符串、搜索字符串、提取子字符串、创建字符串副本并将所有字符全部转换为大写或小写。大小写映射基于 Character 类指定的 Unicode 标准版。
String 类提供处理 Unicode 代码点(即字符)和 Unicode 代码单元(即 char 值)的方法。


2. 类和对象
a) 类的定义
类是具有相同特征和相同行为对象的抽象。

b) 对象的定义
对象是类的具体实现。

c) 定义类的格式
Public class 类名{
Private 数据类型 属性名;
Public 构造函数名(参数列表){
//函数体
}
Public 返回值类型 方法名(参数列表){
//方法体
}
}
d) 创建对象的格式
类名 对象名 = new 构造函数名(参数值列表);
调用对象方法的格式:
对象名.方法名(参数值列表);

e) 方法的分类
1. 按返回值划分
有返回值的方法和无返回值的方法
2. 按参数划分
有参数的方法和无参数的方法

f) 方法的重载
要实现重载必须要满足的条件有:
1.方法名相同
2.参数类型和参数的个数要不同。

实现了方法重载后,如何调用?
调用的时候,会根据你所传递的参数个数以及类型来决定最终调用的方法。
子类是否可以重载父类的方法?
子类可以重载父类的方法。

g) 构造函数
1. 构造函数不能有返回值。
2. 函数名必须和类名相同
3. 如果定义了构造函数,则默认的构造函数将被覆盖,不可以在使用默认的构造函数。
4. 构造函数可以实现方法的重载。
5. 构造函数调用构造函数的时候,可以使用this进行调用。
6. 构造函数是用来创建对象的。
7. 构造函数每调用一次就会创建一个新的对象。
构造函数和普通方法的区别?‘
答:
1.构造函数的命名必须和类名完全相同;而一般方法则不能和类名相同.
2.构造函数的功能主要用于在类的对象创建时定义初始化的状态.它没有返回值,也不能用void来修饰.这就保证了它不仅什么也不用自动返回,而且根本不能有任何选择.而其他方法都有返回值.即使是void返回值,尽管方法体本身不会自动返回什么,但仍然可以让它返回一些东西,而这些东西可能是不安全的.
3.构造函数不能被直接调用,必须通过new运算符在创建对象时才会自动调用,一般方法在程序执行到它的时候被调用.
4.当定义一个类定义的时候,通常情况下都会显示该类的构造函数,并在函数中指定初始化的工作也可省略不去Java编译器会提供一个默认的构造函数.此默认构造函数是不带参数的.而一般方法不存在这一特点

构造函数的名字必须与类名相同,而且不可以有返回值,也不能有return 语句。
构造函数往往执行一些初始化的操作。

h) 值传递
值传递适用于基本数据类型。
传递的方式?

对于基本数据类型,传递的是数据的拷贝;对于引用数据类型,传递的是引用的拷贝
i) 引用传递
引用适用于引用类型。
传递的方式?

j) this关键字
this关键字表示对象本身,当前是哪一个对象在调用方法,那么this关键字就表示当前的对象。

3. 类的继承
a) 为什么需要继承?
可以拥有父类的属性和方法,补充自己的特定的方法,可以避免不必要的定义。
降低代码的冗余,提高了代码的重用性。更符合了现实生活中的概念。

b) 继承的语法格式
Public class 子类名 extends 父类名{

}

c) 子类继承到父类的哪些方法和属性
父类中所有的方法都能被子类继承到,但是不是所有的方法都能被子类调用。
1. 子类和父类在同一个包下
除了私有的属性、方法以及所有的构造函数不能被调用,其他的都可以直接被子类调用。
2. 子类和父类不再同一个包下
只有公有的方法和属性能被子类直接调用。

如果创建一个子类的对象,那么父类的对象是否被创建了?

d) 方法的重写
必须满足的条件:
1. 必须要存在继承关系
2. 方法名,返回值类型,参数个数以及参数类型都必须要和父类的相同。
3. 方法的访问修饰符必须要大于或者等于父类的访问修饰符。

e) 自动转型
必须要存在继承关系。
格式:
1)父类名 对象名 = new 子类构造函数(参数值列表);
2)子类名 对象名B = new 子类构造函数(参数值列表);
方法名(对象名B);
Public void 方法名(父类名 对象名){
}
缺点:不可以调用子类特定的方法。
优点:
如果子类中的函数中要传入父类对象的,在主函数中,定义了一个子类对象,则可以调用这个函数,并传入子类的对象。
一个父类的对象的指向传给子类的对象时必须要强制转型。

f) 多态
方法的重载,方法重写,继承,自动转型等形成多态。

g) 接口
定义接口的格式:
Public interface 接口名{
//定义常量的格式
Public static final 数据类型 常量名 = 值;
//定义方法
Public abstract 返回值类型 方法名(参数列表);
返回值类型 方法名(参数列表);
}
实现接口的格式:
Public class 类名 implements 接口名{
//必须重写接口中所有的方法
}
接口可以继承接口。Public interface 子接口 extends 父接口, 父接口,…{}

h) 抽象类
定义抽象类的格式:
Public abstract 抽象类名 extends 类名 implements 接口名{
Public abstract 返回值类型 方法名(参数列表);
}
如果抽象类实现接口,那么可以不可以不实现接口中所有的方法?
可以。

接口、抽象类和类的区别?
抽象类是接口和类的集合。
抽象类只能被类或者抽象类继承。
接口和抽象类都不能用来创建对象。


4. Java的图形界面和事件
a) Java的图形界面有几套?
1. awt
2. swing
b) 为什么要使用swing,而不使用awt ?
Swing 是在AWT的基础上构建的一套新的图形界面系统,它提供了AWT 所能够提供的所有功能,并且用纯粹的Java代码对AWT 的功能进行了大幅度的扩充。Swing 利用了AWT 中所提供的基本作图方法对树形控件进行模拟。
AWT和Swing之间的基本区别:AWT 是基于本地方法的C/C++程序,其运行速度比较快;Swing是基于AWT 的Java程序,其运行速度比较慢。
而在普通的基于PC或者是工作站的标准Java应用中,硬件资源对应用程序所造成的限制往往不是项目中的关键因素,所以在标准版的Java中则提倡使用Swing, 也就是通过牺牲速度来实现应用程序的功能。
c) 所有的图形界面都是从哪一个类继承的?
Object是java所有的类的父类。
d) 事件流程
1. 寻找事件源
2. 给事件源添加监听器方法
3. 重写监听器类
4. 创建监听器类的对象,并绑定到事件源的监听器方法中。
e) 常用的监听器
1. 动作监听器 ActionListener
2. 鼠标监听器 MouseListener
3. 鼠标拖动监听器 MouseMotionListener
4. 鼠标的适配器 MouseAdapter
5. 键盘等监听器
f) ActionEvent和MouseEvent


5. 数组和队列
a) 数组
数组是一种线性的数据结构,如果你指定了数组的类型,那么数组的类型就已经决定了。
一维数组
定义一维数组的格式:三种
数据类型 [] 数组名 = new 数据类型[长度];
数据类型 [] 数组名 = {参数列表};
数据类型 [] 数组名 = new 数据类型[]{参数列表};
数组类型 [] 数据名;
数组名 = new 数据类型[长度];

操作数组是通过什么?
下标可以操作数组中的每一个元素,可以通过length属性获取数组的长度。

多维数组
下标可以操作数组中的每一个元素,可以通过length属性获取数组的长度。
定义二维数组的格式:三种
数据类型 [][] 数组名 = new 数据类型[行][列];
数据类型 [][] 数组名 = {{参数列表},{…},..};
数据类型 [][] 数组名 = new 数据类型[][]{{参数列表},{…},..};
数组类型 [][] 数据名;
数组名 = new 数据类型[行][列];

下标可以操作数组中的每一个元素,可以通过length属性获取数组的长度。
获取行的总数格式:数组名.length;
获取列的总数格式:数组名[i].length;

数组的缺点:不能改变数组的大小

b) 队列
用自定义队列来实现数组不能改变大小的问题。
实现自定义队列一个。要可以通用。
E 泛型
数组必须是Object的类型。

package cn.java.hsm;

public class MyArray {
//自定义队列
private shape[] old = new shape[0];
//添加一个元素
public void add(shape a){
shape[] newly = new shape[old.length+1];
newly[old.length] = a;
for(int i=0;i<old.length;i++){
newly[i] = old[i];
}
old = newly;
}
//返回添加的元素的值
public shape getAdd(int i){
return old[i];
}
//获取长度
public int getLength(){
return old.length;
}



}


6. 重绘
1. 数据的封装
2. Paint方法重写
Super关键,可以调用父类的方法。

7. 五子棋
1. 前期基础的综合应用
2. 二维数组的使用
展开阅读全文

没有更多推荐了,返回首页