JAVA阶段简要总结(部分)
1.JDK下载安装及其环境配置
我最开始是在官网上下载配置的是最新版jdk1.13,但是低版本的更稳定些,于是我换成了jdk1.8,又重新配置了环境。下面是我配置环境所用方法的链接:
Win10下配置Java 环境变量 - 我是李密 - 博客园 https://www.cnblogs.com/limi2019/articles/11062385.html
2.记事本编写简单代码及DOS窗口运行
注意:javac *.java 编译 java * 运行
3.eclipse使用
4.java语法基础
(1)关键字(2)标识符 (3)常量(4)变量 4类
数据类型:
基本数据类型:1、整型 byte 、short 、int 、long 2、浮点型 float 、 double 3、字符型 char 4、布尔型 boolean
引用数据类型: 数组、类、接口。
自动类型转换:从低级别到高级别,自动转换;
强制类型转换:把一个高级别的数赋给一个比该数的级别低的变量;
输入数据
(1)io流的BufferedReader 输入的皆视为字符串 需转换
(2)调用Scanner类方法
运算符及表达式 注意:优先级
小习题:交换a,b
int a = 3,b = 5;-->b = 3,a = 5;
a = a + b; a = 8;
b = a - b; b = 3;
a = a - b; a = 5;
a = a ^ b;
b = a ^ b;
a = a ^ b;
2*8 =2*2^3= 2<<3;
流程控制
if...else... if...else if...else if嵌套
switch选择
循环 while语句 do-while语句 for语句 多重循环 嵌套
跳转break contine return
数组
声明数组 创建空间 一维数组如下:
int[]x=new int[3];[]中为数组元素个数
x[0]=1;x[1]=2;x[2]=3;
int[]x={1,2,3}; x.length=3;
二维数组:
int[][]a=new int[x][y]; x为行 y为列
a.length为a的行数 a[0].length为第一行的元素个数
面向对象
三大特性:封装 继承 多态
封装原则:将不需要对外提供的内容隐藏起来,把属性都隐藏,提供公共方法对其访问。一般通过类,方法实现
继承:使用已有类派生出新的子类,实现代码复用,子类可修改父类成员变量,重写父类方法,可实现多态。
java只支持单一继承 extends ,多重继承可通过接口实现 implements
多态:前提是必须有子父类关系或者类实现接口关系,一般使用重写与重载
方法的重载:
同类同名的多个方法,参数列表不同(个数,类型,顺序不同)
方法的重写(覆盖):
子类对父类的方法的实现过程重新编写,同名,形参必须不变,返回值为基本类型必须一致,引用类型则父类一致或为父类子类,且子类方法访问修饰权限不能小于父类的。
定义类
成员变量与局部变量的区别:
成员变量是类中定义的,属于类。 局部变量是方法中定义的变量或是方法的参数
成员变量是对象的一部分,随对象创建存在消失,存在于堆内,一般自动赋值。
局部变量必须显示地赋值,随方法调用产生,存在于栈,调用结束自动消失。
成员方法
创建对象
声明引用对象,指向new的对象 如Cat cat=new Cat();
使用对象格式:对象名.对象成员
引用成员变量如:cat.color="orange";
引用成员方法如:cat.eat();
匿名对象
如new 类名()
可作为实参
传递参数
参数就是方法的自变量,在方法的()中实现传递
类的特性
类的私有成员可限制非本类访问来保护数据,可通过公共成员访问
构造方法
1.方法名与类名一致
2.无返回值
3.对类对象初始化
public 类名(){}
构造方法中通过this调用另一构造方法(this放第一行)this:代表对象。就是所在函数所属对象的引用。
静态成员是公共的,整个类共有的,也叫类成员
静态方法只能访问静态成员,不可以访问非静态成员。
因为静态方法加载时,优先于对象存在,所以没有办法访问对象中的成员。
静态方法中不能使用this,super关键字。
子类继承父类后,必须调用父类的构造方法,第一行super()。若无super(),默认调用父类无参构造方法。
抽象类
a:抽象类和抽象方法都需要被abstract修饰。抽象方法一定要定义在抽象类中。
b:抽象类不能直接创建对象(实例化),原因:调用抽象方法没有意义。
c.抽象方法只定义方法声明,并不定义方法实现。
d:只有覆盖了抽象类中所有的抽象方法后,其子类才可以创建对象。否则该子类还是一个抽象类。
继承抽象类面对共性类型操作会更简单。
抽象类可以没有抽象方法
抽象关键字abstract不可以和private,final,static,native关键字共存
private只能访问本类,final为最终类,而adstract方法需要子类实现。
接口 定义格式
public interface 接口名 {
抽象方法1;
} 接口中的方法均为公共访问的抽象方法
接口中变量必须有固定的修饰符修饰,public static final
接口是一种特殊的抽象类
类与类单一继承可实现多接口,接口间可实现多继承
接口和抽象类
相同点:
都位于继承的顶端,用于被其他类实现或继承;
都不能直接实例化对象;
都包含抽象方法,其子类都必须覆写这些抽象方法;
区别:
抽象类可使用非抽象方法;接口只能包含抽象方法;
抽象类只能被继承,而且只能单继承,接口需要被实现,而且可以多实现。
匿名对象是指创建对象时,只有创建对象的语句,却没有把对象地址值赋值给某个变量。
创建一个普通对象
Person p = new Person();
创建一个匿名对象
new Person();
内部类:将类写在其他类的内部,可以写在其他类的成员位置和局部位置,这时写在其他类内部的类就称为内部类。其他类也称为外部类。最常用到的内部类就是匿名内部类,它是局部内部类的一种。
匿名内部类,可以合并简化代码。
异常
处理方式有两种:1、捕捉;2、抛出。
对于捕捉:java有针对性的语句块进行处理。
try {
需要被检测的代码;
}
catch(异常类 变量名){
异常处理代码;
}
fianlly{
一定会执行的代码;
}
throw 和throws关键字的区别:
throw用于抛出异常对象,后面跟的是异常对象;throw用在函数内。
throws用于抛出异常类,后面跟的异常类名,可以跟多个,用逗号隔开。throws用在函数上
多线程
CPU同一时间执行多个程序段
Thread是程序中的执行线程
创建新执行线程有两种方法。
a:继承 Thread 类。该子类应重写 Thread 类的 run 方法。创建对象,开启线程。run方法相当于其他线程的main方法,线程执行代码在run()方法内
b:实现 Runnable 接口。该类然后实现 run 方法。然后创建Runnable的子类对象,传入到某个线程的构造方法中,开启线程。
通过线程的start()方法启动线程
容器
列表接口list
例
List<数据类型> list = new ArrayList<数据类型>();
List<String> list = new LinkedList<String>();
list接口方法
list.add(Object e):向集合末尾处,添加指定的元素
list.add(int index, Object e) 向集合指定索引处,添加指定的元素,原有元素依次后移
remove(Object e):将指定元素对象,从集合中删除,返回值为被删除的元素
remove(int index):将指定索引处的元素,从集合中删除,返回值为被删除的元素
遍历(迭代)
1.使用Collection接口的toArray()方法
2.for循环size(),get()方法获取
3.迭代器遍历
=======================================================================================
先到这里啦,做的java小游戏用了一部分上面的,时间紧,GUI里Swing和事件处理的具体内容先不说了。