java基础梳理

1.       java基础入门

a)         操作系统中配置java环境变量?

PATH=%PATH%; c:\java\bin;

CLASSPATH = .;c:\java\lib\classes.zip

b)        对类名、属性名、方法名以及常量名命名的时候需要注意什么?

标识符以字母,数字,美元符号"$",下划线"_"组成,第一个字符不可用数字

类名:首字母必须大写;之后每个单词的首字母也大写

类名首字母只能是下划线与字母,后面可以再加数字

属性名:首字母小写,之后每个单词首字母也大写,不可以与关键字重名。

方法名:首字母小写,之后每个单词首字母也大写。

常量名:所有字母都需大写,不同单词之间用下划线区分

c)         定义类名必须要和什么相同?

 类名必须与创建的java文件相同;

d)        Java编译和运行的命令与格式?

   编译:javac  类名.java

   运行:java   类名

e)         Java中的基本数据类型

  byte  char  short  int  float  long  double  Boolean  

f)          Java中有哪几种数据类型?

基本数据类型、

引用类型(类类型)

g)         String的常用方法有哪些?

  valueOf():将其他的基本数据类型转换为字符串

          trim(): 返回字符串的副本,去掉空白

          toUpperCase():将字符大写化

          toLowerCase():讲字符小写化

          toCharArray():将此字符串转换为一个新的字符数组。

          substring(int beginIndex, int endIndex):返回一个新字符串,它是此字符串的一个子字符串

          length():返回此字符串的长度

          lastIndexOf(String str) 返回指定子字符串在此字符串中最右边出现处的索引

          equals(Object anObject):将此字符串与指定的对象比较

          equalsIgnoreCase(String anotherString):将此 String 与另个 String 比较,不考虑大小写

          indexOf(String str):返回指定子字符串在此字符串中第一次出现处的索引

          isEmpty():当且仅当 length() 0 时返回 true

          concat(String str):将指定字符串连接到此字符串的结尾

2.       类和对象

a)         类的定义

类是由相同特征和相同行为对象的抽象;

类由两个部分组成:属性和方法。属性对应的是特征,方法对应的是行为。

b)        对象的定义

对象是现实生活中存在的物体以及脑海中所想象的物体。

         对象由两个部分组成:特征和行为。

c)         定义类的格式

public class 类名{

                   private 数据类型  属性名;

                   public 返回值类型  方法名([参数类型 参数名,...]){

                            //方法体

                   }}

d)        创建对象的格式

  类名 对象名 = new 类的构造函数;

e)         方法的分类

   有无返回值;

   有无参数;

f)          方法的重载

   必须在同一个类中,

   方法名要完全相同,方法所带参数个数或者参数类型要不同

g)         构造函数

1、  没有返回值类型

2、  函数名必须与类名相同

3、  默认的是没有带参数的构造函数,但是一旦有改写,则默认的就会不存在;

4、  构造函数是用来实例化对象的,每调用一次就实例化了一个对象

h)        值传递

  适用于基本数据类型及String类型;

  值传递是将目标变量中的值拷贝一份存入到一个新的变量中,新旧变量互不影响

i)           引用传递

 适用于java的引用类型。

引用传递是将对象名中存储的地址拷贝一份存入到另一个对象名中,两个对象名就指向了同一块内存,“一变全变”;

j)          this关键字

1、  区别形参与属性。有this的是属性,没有的是形参;

2、  代表当前的对象,可以用this.属性 或者 this.方法名 来调用属性与方法;

3.       类的继承

a)         为什么需要继承?

1、减少了代码量,提高了工作效率,减低了代码的冗余。

         2、提高了程序的扩展性。

b)        继承的语法格式

        public class 子类(超类)   extends 父类(基类) { }

c)         子类能继承到父类的哪些方法和属性

 能继承到所有的方法和属性

    但是调用的时候:

子类跟父类在同一个包下:子类能调用共有的和受保护的属性和方法;如果子类重写父类的方法则调用重写后的方法;

子类跟父类不同包下:只有共有的方法和属性能被子类调用

d)        方法的重写

1.方法名字要相同

2.方法的实现要不同。

             3.必须要存在继承关系。

                    4.方法所带的参数个数和类型要完全相同。

 5.访问修饰符可以和父类的不同,但是必须大于或者等于父类的访问修饰符。

e)         自动转型

    条件是存在继承关系;

    父类名  对象名  = new 子类构造方法(参数值列表);

缺点:不能调用子类自己没有重写的方法

优点:封装了子类独有的方法;

简化了代码的编写,提高程序扩展性;

f)          多态

多态是由方法重载,继承,方法重写,自动转型等一系列的内容组合的

g)         接口

    接口是用来定义抽象方法的,定义了抽象方法后,就要求实现类必须要重写接口中所有的方法。

h)        抽象类

接口和类的集合。

接口、抽象类和类的区别?

1.接口只能定义抽象公有方法;类可以定义任何不是抽象的方法。

2.接口可以实现多重继承;抽象类与普通类只能是单继承。

3.接口定义的关键字是interface ;类定义的关键字是class.

4.接口只能继承,继承的关键字是extends;类既可以继承(继承的关键字是extends)也可以实现接口,并且实现接口是可以实现多个(实现的关键字是implements)

         5.接口没有构造函数,不能实例化对象;抽象类因为可以定义抽象方法,所以也不能实例化对象;普通类有构造函数,可以实例化对象。

4.       Java的图形界面和事件

a)         Java的图形界面有几套?

   swingswtawt三种

b)        为什么要使用swing,而不使用awt ?

   它提供了AWT 所能够提供的所有功能,并且用纯粹的Java代码对AWT 的功能进行了大幅度的扩充。

c)         所有的图形界面都是从哪一个类继承的?

   Object

d)        事件步骤

1.       确定事件源;

2.       给事件源设置好条件,设置好捕获事件的条件;

3.       创建一个处理事件的类,再实例化类的对象;

4.       结束;

e)         常用的监听器

  鼠标监听器(继承自MouseAdapter类)

  ActionListener

f)          ActionEventMouseEvent

 ActionEvent为语义类事件,MouseEvent为低层事件

 

5.       数组和队列

a)         数组

数组是一种线性的数据结构

操作数组是通过什么?

数组下标

多维数组

是一维数组的拓展

获取行的总数格式? array.length

获取列的总数格式? array[i].length

数组的缺点?数组中只能存储一种类型的数据;

            数组的长度是固定的,如果发生追加或者删除长度的时候无法实现

b)        队列:  定义一个类,用该类来封装对数组的操作。

   数组可以使用Object来实例化。

队列只能存储一种数据类型。

            但是java提供了一个叫做泛型的概念, E可以表示java所有类,然后E结合类一起使用就可以储存不同类型的数组元素;

6.       重绘

1.       要有一个队列来储存获过的对象

2.       要有一个画图形的类,每画一次就加到队列中

3.       调用父类的paint方法,然后通过循环队列里储存的画图类,每次都重绘一次

7.       五子棋

一、界面

  五子棋界面窗体:设置好窗体属性;并显示窗体

在显示界面的时候就需要有一个棋盘,并且棋盘要一直在窗体上存在。

15*15格子的棋盘。每一个格子的大小40个像素,每一颗棋子的大小是30像素

用数组来对应所下的棋子

二、输赢算法:

同色棋子在“米字”方向上有连接超过5个则该色棋子赢了;

三、人机,判断机器下的子:

  根据棋子在棋盘上的相连排列,分为8种(或更多);

有一连活(表示只有一个棋子相连,周围8面都是活路),一连半(表示一个棋子相连,一面被异色棋子堵住,一条线只能下一边),相似还有二连活、二连半、三连活、三连半、四连活、四连半;将这些位置设置为不同的权值,一个棋子周围就有不同的权值,所有棋子的权值表累加在一起,判断权值最大的地方就是落子的地方

四、重绘:每下一个棋子都放入队列中,然后与窗体一起重绘

你可能感兴趣的:(java)