java基础-牛耳

目录

一、Java由来

1、Java语言

1.1、时间:

1.2、结构(JDK)jdk是主要、jre是辅:

2、Java程序执行流程

二、数据类型

1、Java数据类型

1.1、八大基本数据类型:

1.2、引用数据类型

2.Java变量

3.Java的转译符

第03天 - - 运算符、STS工具

一.目标

1.STS工具的使用

2.Java运算符

二.知识点

1.STS工具使用

2.Java运算符

第04天 - - 流程、循环语句(水仙花)

一.目标

二.知识点

1.Java条件控制语句

2.条件控制语句

3.Java开发工具类使用

4.案例

5.Java开发工具

6.Java循环语句

7.案例

第05天 - - 数组

一.回顾

二.目标

三.知识点

1.Java数组

2.Java数组定义

3.Java数组类型

4.Java数组排序

5.案例

第07天 - - OOP(东)

一.介绍

二.知识点

1.什么叫软件:

2.软件开发:

3.面向过程(不要记标准答案,没有。主要记核心)

4.面向对象

第08天 - - OOP(斌)

一.目标

二.知识点

1.JavaOOP

2.OOP特征

3.OOP核心

4.OOP思想

5.作业

第09天 - - OOP-方法

一.回顾

a.通过OOP设计坦克大战游戏的对象和属性

b.飞机大战

c.植物大战僵尸

二.目标

三.知识点

1.对象的成员

2.Java特征:封装

3.Java的对象员之方法

4.对象的构造

5.方法的作用

6.总结

7.案例

第10天 - - JavaOOP-重载

一.回顾

1.方法

二.目标

三.知识点

3.继承

4.继承的实现

5.继承的特征

第12天 - - 访问修饰符、关键字

一.目标

二.知识点

1.访问修饰符(属性private,方法public)

2.关键字

4.总结

5.预习

第14天 - - 多态

一.目标

二.知识点

1.方法重写

2.引用转型

3.多态

第15天 - - 扫雷

一.目标

二.知识点

1.递归(开销很大)

2.扫雷(控制台)

第16天 - - 复习

一.复习

1.封装

二.目标

三.知识点

1.抽象

第17天 - - JavaOOP

一.目标

二.知识点

1.抽象

2.接口

3.常量

4.抽象类与接口的区别

5.异常

N.扩展

1.吃饭为什么要用筷子

2.抽象类与接口的区别

第18天 - - API

一.目标

二.知识点

1.JavaAPI(ApplicationProgramInterface)

2.JavaAPI包

3.java.lang包

第19天 - - API-lang包

一.目标

二.知识点

1.String类

2.StringBuffer类

3.StringBuilder类

4.Object类

5.Class类

6.Math类

7.预习

N.扩展

1.“+”号连接字符串与StringBuffer的append()方法拼接区别

2.String类、StringBuffer类、StringBuilder类区别

第20天 - - static、final与GUI

一.目标

二.知识点

1.static(静态)

2.final、finally

3.javaGUI编程(Graphical User Interface)

4.GUI编程API(Application Program Interface)

5.JFrame类(窗体类)

6.JPanel(面板类)

7.布局

8.组件

N.扩展

1.类在哪儿

2.为什么类被声明时没有调用静态方法

3.背景颜色会超出面板(panel)的大小

4.常量池不是存放常量吗?变量的值不是存放在栈中吗?

第21天 - - JavaGUI

一.目标

二.知识点

1.组件

2.事件

3.监听器

N.扩展

1.组件的声明

2.匿名内部类

3.通过标签设置图片

第22天 - - JavaAPI

一.目标

二.知识点

1.java.util包(工具)

2.Date类

3.集合

N.扩展

1.过时方法

2.集合中对象元素调用属性

3.for、foreach循环的使用场合不同

第23天 - - JavaGUI

一.目标

二.知识点

1.List

2.Set集合(这里Set可以理解为集合)

3.Map集合

N.扩展

1.Set集合

2.请说明List、Set、Map区别

3.请说明Collection和Collections的区别?

第24天 - - JavaGUI

一.目标

二.知识点

1.java.io包

2.File类

3.流

4.FileInputStream

N.扩展

1.作业

2.各种流的区别(浅析)

第25天 - - JavaGUI

一.目标

二.知识点

1.FileOutputStream(文件字节输出流)

2.ObjectInputStream、ObjectOutputStream(对象字节输入、输出流)

3.DateInputStream、DataOutputStream

4.字符流

5.缓冲区

N.扩展

1.作业

2.任务

3.汉字的字节数

第26天 - - JavaAdv

一.目标

二.知识点

1.绘图

N.扩展

第27天 - - JavaThread

一.目标

二.知识点

1.线程

2.线程使用

N.扩展


一、Java由来

1、Java语言

1.1、时间:

  • 1991 - - Java的前任诞生 - - OAK  Sun公司开发团队:詹姆斯.戈斯林  -->绿色计划
  • 1994 - - SUN公司要求詹姆斯将OAK语言变更为官方语言
  • 1995 - - 爪哇(爪哇岛)语言     ->      1995 Java语言

1.2、结构(JDK)jdk是主要、jre是辅:

  • JVM(java虚拟机)组成:类加载器、垃圾回收器(垃圾回收机制)
  • API (应用程序接口)为java程序提供工具类

2、Java程序执行流程

二、数据类型

1、Java数据类型

1.1、八大基本数据类型:

1.整数类型:int(正整数、负整数、0)

范围:-2(31)- - 2(31)-1                  //(-1减一)因为还有一个0

位数:32位 - -> 4个字节

2.长整数类型:long

特征:当数字的长度超过int的范围后可以使用长整型来存放,但必须添加单位“l”

范围:-2(63)- - 2(63)-1

3.但精度浮点类型:float

特征:数字后小数位数为一位,在使用float类型的时候数据必须添加单位“f”

位数:32位 - - > 4个字节

4.双精度浮点类型:double

位数:64位 - - > 8字节

5.短整型:short(属于淘汰产品)

6.字符类型:char

特征:所有的字符数据都必须添加单引号包含(' 字符 ')

位数:16位 - - > 2个字节

例如:'H''e''l''l''o'(英文2个字节)、'张''三'(中文4个字节)

7.布尔类型:boolean

特征:用于存放真假值得一种类(true、false)

位数:1位 - - >1字节

8.字节类型:byte

位数:8位

特征:用于存放最小单位

1.2、引用数据类型

1.字符串类型:String

特征:"Hello World"

2.程序员自定义的类型

3.java中的其他引用类型

 

2.Java变量

蓝屏:超频,内存影响

栈域:程序员操作区域(程序的入口),例如“物质的名字”

堆域:计算机…,对应栈的实质性东西。

常量域:用于存放所有不可变数据的容器(变量存放在这里面)

静态域:属于程序在运行之前就需要获得的数据都存放在当前容器中,这种方式属

于程序加载时操作的方式

 

1)变量的定义语法

语法:

a.数据类型 变量名 = 值;

属于在定义变量的时候直接初始化变量的值

b.数据类型 变量名;       //先声明后赋值

例:int a;

a = 1;

2)变量的使用

关于变量的赋值方式和变量的声明方式

变量的声明

如果在一个代码中存在多个相同类型的变量需要实现声明,可以省略变量的数据类型

例如:

int a; int b; - - > int a,b;

int a=1; int b=2; - - >int a=1,b=2;

变量的赋值

变量的赋值可以先声明,然后可以直接赋值,也可以通过其他变量来实现赋值的操作

 

3.Java的转译符

在java代码中有些输出内容和编写内容需要不一样的显示效果,就可以通过转译

符实现“\”斜杠。

\n:换行

\t:制表符

 

 

疑问:

1.Boolean是大写还是小写

小写(boolean):基本数据类型

大写(Boolean):包装类

 

2.char是不是2个字节

java中的char是Unicode编码占2个字节,16位,一个汉字占2个字节。

 

3.float转double会不正确

我们使用的是十进制,计算机使用二进制数据表示。浮点数精度7位,doubl类型精度15位。float、double都有精度丢失,但是范围不同。

 

第03天 - - 运算符、STS工具

一.目标

1.STS工具的使用

2.Java运算符

二.知识点

1.STS工具使用

Java工程(JavaProject):

在一个工程中可以包含多个java程序

Java程序:

通过java语言实现的执行过程

STS工具的使用:

a.STS工具介绍:

 

b.STS工具使用

1.创建Java Project工程(STS最低支持JDK1.8)

 

2.STS工程结构

 

 

3.STS创建Java源代码文件

 

2.Java运算符

1.算数运算符

a.一元运算符

++自增  --自减

现象:

1.如果运算符在变量之前表示先执行自增或自减操作、在输出其内容

2.如果运算符在变量之后表示先输出其内容,在进行自增自减操作

b.二元运算符

+  -  *  /  %取余

 

2.比较运算符

> 大于              != 不等于                 >= 大于等于

< 小于              ==   等于                <= 小于等于

 

3.赋值运算符

+=     -=      *=     /=     %=    =

例如:

a+=5;  a=a+5;  a=5;

 

4.逻辑运算符

a、逻辑运算符

& 逻辑与

运算符前后两者如果结果都为真表达式结果就为真,只要有任意一方为假结果就为假 

| 逻辑或

运算符前后两者中有任意一方为真表达式结果就为真,如果两者都为假结果才为假

! 逻辑非:对结果取反(只能对结果操作)

b、短路运算符(java常用的)

&&短路与)       ||短路或

 

5.多元运算符

语法:

表达式 ? 真的结果 : 假的结果;

 

疑问:

1.一、二、三元运算符的区别

一元:

只需要一个操作数的运算符。例:++a,b--;

二元:

需要两个操作数的运算符。例:a+b;

三元:

需要三个操作数的运算符。例:a?b:c;

 

 

 

第04天 - - 流程、循环语句(水仙花)

一.目标

1.Java条件控制语句

2.Java条件语句类型

3.Java开发工具使用-Scanner

4.Java开发工具使用-Random随机数

5.Java循环语句

二.知识点

1.Java条件控制语句

概念:通过条件判断来确定执行的java代码部分

 

2.条件控制语句

a.if类型

1. if..else类型

语法:

If(条件表达式){

条件表达式成立执行的代码部分

}else{

条件表达式不成立执行的代码部分

}

2.多重if..else类型

语法:

if(条件表达式1){

条件表达式1成立执行的代码部分

}else if(条件表达式2){

条件表达式2成立执行的代码部分

}else{

条件表达式不成立执行的代码部分

}

3.嵌套if..else类型

语法:

if(条件表达式){

if(条件表达式){

 

}else{

 

}

}

 

 

b. switch类型

作用:用于简单或单一性的值得判断

语法:

switch(比较的内容){

case 值1 :表达式;

break;

case 值2 :表达式;

break;

//…

default : 默认表达式;

}

 

3.Java开发工具类使用

a.控制台输入工具 - - Scanner

使用方式:

1. 导入工具类所在的库路径

import java.util.Scanner;

2.定义工具 - - 获得工具使用

Scanner s=new Scanner(System.in);

3.实用工具

String str = s.next();                  //获得控制台输入内容

 

4.案例

猜数字游戏              //2018-01-15-JavaControl - >Demo_Game

 

5.Java开发工具

随机数工具:

1.导入工具类所在的库路径

import java.util.Random;

2.定义工具- -获得工具使用

Random r = new Random();

3.获得随机数

r.nextInt();                 //随机一个int范围的随机数

r.nextInt(index);       //随机一个index参数范围的整数

 

6.Java循环语句

类型:

a.循环

特征:通过有效的循环条件来控制循环的执行

b.死循环

特征:重复不停的执行。(大部分病毒的特性)

循环种类:(三种)

a.while循环(通常使用在死循环

语法:

while(循环条件){

循环体- -循环执行的代码部分

}

b.do..while循环

语法:

do{

循环体              //先执行循环体在判断循环条件

}while(循环条件);

c.for循环(小于符号效率高于小于等于符号)

特征:简化循环代码的编写

语法:

for(参数1;参数2;参数3){

         循环体

}

参数1:计数器 - - int i=0;

参数2:循环条件 - - i<?

参数3:计数 - - i++;

7.案例

循环:

1.一重循环100-999之间的水仙花数(各个位上的数的立方相加等于这个数本身)

//2018-01-15-JavaControl - >Work - >Work1_Flower(老师\三重\Demo_Flower)

2.输出空心菱形

//2018-01-15-JavaControl - >Work - >Work3_Rhombus.java

3.九九乘法表

//2018-01-15-JavaControl - >Work - >Work2_Multiply.java

 

注意:

1. 字符串内容比较:在java程序中需要对字符串内容进行比较不能使用==,因  为==

比较字符串的时候是比较的引用地址是否相同,所以需要使用到字符串中提供的方法来判断内容是否相同,字符串.equals(比较的字符串);

2. "".equals(input)和input.equals("")区别:input.equals()要求字符串必须有引用产生才能正确判断否则,就会出现空指针错误。"".equals避免了系统出现空指针错误来判断字符串内容.

 

疑问:

1.Scanner输入的字符串无法用“==”判断(可用equals()),定义的2个字符串却可以。

半解决:

 

第05天 - - 数组

一.回顾

作业讲解:

1.单循环方式打印水仙花数

2.9x9乘法表

3.空心菱形(老师)   //2018-01-16-JavaArray - >Work_LookBack - >LookBack_Rhombus.java

 

二.目标

1.了解Java数组

2.掌握Java数组类型

3.掌握Java数组排序

三.知识点

 

1.Java数组

概念:在程序中一组相同类型数据的表示方式

2.Java数组定义

定义方式:

1.定义

语法:

数据类型[] 数组名 = new 数据类型[长度];        //非配了空间,无值

例如:

int[] a=new int[5];

 

2.声明

语法:

int[] a;      //声明数组

赋值:

a={值};

a=new int[]{值};

a[下标]=值;

下标起始值从0开始

3.Java数组类型

a.一维数组

语法:

数据类型[] 数组名=new 数据类型[长度];

作用:

通过一个数组变量来存放内存中多个相同类型的变量数据

b.一维数组

语法:

数据类型[][] 数组名=new 数据类型[长度1][长度2];

作用:

通过一个数组变量来存放内存中多个相同类型的数组

4.Java数组排序

排序方式:

系统排序(java语言内置提供的排序方式)、普通排序、插入排序、选择排序冒泡排序。

冒泡排序:通过相邻的两个数据进行比较,将大的后移。

int[] a={11,21,3,22,12,44};

for(int i=0;i<a.length;i++){

for(int j=0;j<a.length-i-1;j++){

if(a[j]>a[j+1]){

int temp =a[j];

a[j]=a[j+1];

a[j+1]=temp;

}

}

}

5.案例

1.冒泡排序

//2018-01-16-JavaArray - >Test.java

2.半成品扫雷

//2018-01-16-JavaControl - >Work - >Work_SweepBomb.java

 

注意:

1.数组是引用类型,数组的变量的值,是这个数组的地址。

2.地址都是来自堆当中(有new就是引用了堆中的数据)

第07天 - - OOP(东)

一.介绍

1.c面向过程编程

2.c++:面向过程编程+面向对象编程

3.java/c#:面向对象编程(革命、推翻c++面向过程)

 

二.知识点

1.什么叫软件:

软件有可能是多个程序,某种意义上软件与程序等同。(软件就是现实的虚拟

2.软件开发:

使用计算机语言将现实中的事物在计算机中虚拟化(写作文:结构就相当于散文、议论文之类)

 

3.面向过程(不要记标准答案,没有。主要记核心)

所关注的是做一件事情的步骤、过程

例子斗地主:洗牌 发牌 抢地主 出牌 确定输赢

5函数:  f1()  f2()   f3()     f4()    f5()

4.面向对象

所关注的是做一件事情的人或物

 

对象:是一个具体的个体

类:是一个抽象的概念,对象共同点的描述

类是对象的抽象---->类描述的是从对象身上找到的共同点(虽然有许多点,但是只找需要的)

类的作用:

1.作为模板,可以根据类得到对象

2.作为一种数据类型

3.调用这个类,根据类创建对象

第08天 - - OOP(斌)

一.目标

1.了解JavaOOP

2.掌握JavaOOP的核心思想特征

3.掌握JavaOOP类和对象的定义

4.掌握类和对象的成员使用-属性

 

二.知识点

1.JavaOOP

OOP:面向对象编程 - - 思想

现实世界:所有存在的东西都统称为实体,

虚拟世界:所有存在的东西都统称为对象

2.OOP特征

a.封装

b.继承

c.多态

d.抽象

e.接口

3.OOP核心

一切皆对象

4.OOP思想

a.类(class)

作用:

在虚拟世界中java语言通过类来创建虚拟世界中的所有对象,类就是生产对象的工厂,也是程序员设计的东西。

b.对象(Object)

作用:

在虚拟世界中所存在的所有东西都统称为对象,对象就是虚拟世界中完成虚拟化的工具

语法:对象名在中,new是指向中的地址

类名 对象名(实例名) = new 类名();      //赋一个引用(地址)给他

 

案例:请说明吃饭需要准备对象有哪些

人、饭、碗、筷、菜、钱……

 

c.成员

类型:

1.属性

作用:用于在程序中对一个对象进行描述信息保存的一种容器

语法:

数据类型 属性名;          //在类中一般不存在直接赋值

操作:

对象名.属性名=值;         //为对象的属性赋值

对象名.方法名

练习:请使用OOP思想设计一个扫雷游戏的对象,及对象成员属性

对象:格子对象

属性:坐标、内容、状态

 

2.方法(下次课讲)

作用:用于在程序中对一个对象进行描述信息保存的一种容器

 

5.作业

1.请使用OOP思想设计撸啊撸游戏的对象及属性

2………植物大战僵尸的对象及属性

3………坦克大战游戏的……

4………飞机大战……

5………21点……

6………象棋……

 

注意:

1.要开始养成面向对象的思想

2.java提示:“△”表示属性,“○”表示方法

3.变量数组对象,都是容器,还有一个集合

 

第09天 - - OOP-方法

一.回顾

a.通过OOP设计坦克大战游戏的对象和属性

对象:

坦克(坐标、方向、图片、状态、血量)

子弹(坐标、方向、图片、状态)

障碍物(坐标、类型、状态、图片)

道具(坐标、图片、类型、状态)

b.飞机大战

 

c.植物大战僵尸

对象:

植物(类型、图片、坐标、状态、价格、血量、攻击力、技能)

僵尸(类型、图片、坐标、状态、血量、攻击力、技能)

障碍物(坐标、类型、状态、图片)

子弹(坐标、方向、图片、状态、类型)

二.目标

1.掌握对象中方法的类型

2.掌握方法的使用

3.掌握对象的构造

三.知识点

1.对象的成员

a.成员属性(属性就是对象中的成员部分)

作用:在java中为某个对象提供描述信息(类有的东西,对象不一定有)

b.成员方法(方法也是对象中的成员)

作用:在java程序中为对象提供行为能力的一种表现。

语法:

对象名.方法名(参数列表);

属于程序员编写指令的部分。

 

2.Java特征:封装

在java程序中类、对象、属性、方法的操作都属于封装的现象。

3.Java的对象员之方法

类型:

a.无返回、无参数

语法:

访问修饰符 void 方法名(){

方法体(需要该方法执行的代码)

}

b.无返回、有参数

语法:

访问修饰符 void 方法名(参数列表){

方法体(需要该方法执行的代码)

}

c.有返回、无参数

语法:

访问修饰符 返回值类型 方法名(){

方法体(需要该方法执行的代码)

return       返回值;

}

 

d.有返回、有参数

语法:

访问修饰符 返回值类型 方法名(参数列表){

方法体(需要该方法执行的代码)

return       返回值;

}

 

4.对象的构造

产生:

在Java程序中所有的对象是通过类中提供的构造方法来构造出每个对象,在每个类中隐式包含一个构造方法,程序员可以将其改变成显示方式来扩展。

语法:

访问修饰符 类名(参数列表){

对象初始化的时候需要执行的代码部分

}

 

类名 对象名 = new 类名();

 

5.方法的作用

a.方法在程序中用于提供对应的功能代码实现

b.方法在类中用于为当前属性进行赋值操作

1.使用普通方法为属性赋值

例如:

public class Teacher{

String name;

int age;

//为属性赋值的构造方法

public Teacher(String n){

name=n;

}

//定义一个为属性赋值的方法

public void setName(String n){

name=n;

}

}

//通过构造方法赋值

Teacher t = new Teacher("xx");

//使用对象赋值

t.name="yy";

//通过普通方法赋值

t.setName("小花");

 

6.总结

在java语言中OOP思想的开始取决于封装,因对象的创建和类的创建就体现了封装,并且类和对象中的成员也完成了封装的体现,所以虚拟世界的构建离不开对象,并且也由对象而开始。

 

7.案例

//参数不用考虑人本身。参数不是绝对的,是可变的看你如何用。(有参数、和无参数之间2种情况时,就要选择有参数(考虑周全))

睡觉                   无返回、无参数

玩游戏              无返回、有参数

做作业              无返回、有参数

回家                   无返回、有参数

泡妞                   有返回、有参数

吃鸡                   无返回、有参数

起床                   无返回、无参数(穿衣服..属于内部操作)

第10天 - - JavaOOP-重载

一.回顾

1.方法

a.自定义方法

作用:在程序中为程序提供功能操作(一个方法一个功能)

类型:

1.无返回、无参数

2.无返回、有参数

3.有返回、无参数

4.有返回、有参数

b.构造方法

作用:用于在java程序中创建对象需要使用的方法

new 类名();              //没有构造方法这个概念。自动执行

语法:

访问修饰符 类名(参数列表){

 

}

 

二.目标

1.重载

2.继承

三.知识点

1.方法重载

重载:在程序中,为某个功能提供多种执行的选择过程。

要素:

a.方法名称必须相同。

b.方法的参数列表不同(参数类型不同、参数个数不同、参数顺序不同)

2.方法重载案例

请说明下面哪些方法实现了重载:

public void run(){}

public String run(){}

public int run(int a){}

public void run(String b){}

public void run(String a,int b){}

public String run(int a,String b){}

public void run(String a,String b){}

答案:134567或者234567(判断重载不看返回类型

 

 

3.继承

现实世界:子承父业

虚拟世界:实现类与类之间关系的建立。

4.继承的实现

语法:

public class 类名(子类) extends 类名(父类){

 

}

词汇:

儿子(子类、派生类)

父亲(父类、基类、超类)

5.继承的特征

a.单向性特征

在java程序中类与类之间建立关系后,子类可以获得父类非私有化成员(属性方法)而父类不能访问子类的所有成员

 

b.单一性特征

在java程序中一个类与另一个类继承关系后,子类只能拥有一个父类,但父类可以拥有多个子类

 

b.传递性特征

在java程序中实现多个类之间关系的建立,将类与类之间联系起来。

 

问题:

1.在子类对象创建的时候父类对象是否被创建?      有

子类对象在创建的时候必须先构造出父类对象。在创建子类对象

2.在父类对象创建的时候子类对象是否被创建?      无

 

注意:

重载与方法的区别:需不需要适应(要满足多个不同需求)

子类可以访问父类的成员,但是父类不能访问子类的成员

是否要创建子类应考虑该类的功能

疑问:

类的属性,该类对象到底是不是都有

第12天 - - 访问修饰符、关键字

一.目标

1.java访问修饰符

2.java继承系统包含的关键字使用

3.java对象参数使用

二.知识点

1.访问修饰符(属性private,方法public

a.共有化访问修饰符 - - public

作用域属于整个应用程序

b.私有化访问修饰符 - - private

将一个类中的成员修饰为只有本类才能访问,其他的都不能访问

c.受保护访问修饰符 - - protected

在java程序中,如果类之间存在父子关系的话,允许外部包中有关系的类访问不同包中的成员

d.缺省访问修饰符

当某个成员被修饰成缺省类型后,表示该成员只能在同包中的类访问到

package - - 包

作用:用于在java程序中实现类的归类操作,等同于文件夹

规范:

com.xxx.包名(每个点就是一个子包)

- - - com:商业化表示名

- - - xxx:公司名称,团队名称,项目名称

包名命名:

bean         - - 实体类包

util             - - 工具类包

test           - - 测试类包

core          - - 核心类包

---------(↑现阶段学的,↓以后要学的)

dao

service

servlet

action

 

2.关键字

a.super

作用:

在程序中为子类访问父类非私有成员构造方法所提供的访问方式。

使用方式:

1.父类构造方法调用

语法:

super();             //相当于调用父类构造方法

2.父类成员调用

语法:

super.属性       /        super.方法

注意方式:

所有子类在使用super关键字访问父类成员的时候必须将super关键字代码写在第一行的位置。

例如:

public Order(){

super();

name = xxxx;

}

b.this

作用:

在子类中访问父类的非私有成员和自身的所有成员,但父类的构造方法不能访问。

 

this关键字在自身类中可以省略(写出this层次更鲜明

 

c.对象参数传递

传值方式:

1.对象

2.构造方法

3.set方法传值

 

目的:用于在程序中为值实现对象的封装。

 

4.总结

访问修饰符:用于控制程序访问对象的权限

关键字:this和super都是用于获得成员操作

对象参数:更进一步完成封装的操作

 

封装:

属于java语言的特征之一,该特征属于OOP思想入门,主要体现在成员的包含值的存储方面,并且封装属于一种程序实现的现象

5.预习

多态:

a.引用转型

b.方法重写

第14天 - - 多态

一.目标

1.方法重写

2.引用转型(父读子)

3.多态

二.知识点

1.方法重写

方法重载:

作用:

在程序中为功能提供选择的操作,根据相同的方法选择而获得不同的执行结果。

要素:

1.方法名称必须相同

2.参数列表不同(类型、个数、顺序)

方法重写 - - 方法覆盖

作用:将程序中已存在的功能实现更新。

要素:

1.必须具备继承关系

2.方法结构完全相同

2.引用转型

作用:(可以避免子类可以随意访问父类属性)

通过引用的不同来获得不同的功能结果

例如:

Person 父类

Student 子类

//通过学生实例来保存学生对象

//通过父类的引用指向父类的实例

Person p = new Person();

 

//父类的引用指向子类的实例

Person p = new Student();

注意:

在完成引用转型的时候,必须具备继承的条件,并且只能父类引用指向子类的实例。

在通过引用转型获得到的对象使用中,该对象中所包含的功能只会有父类的功能,如果子类重写父类的方法后,使用的功能才会是子类中的重写功能

 

3.多态

在java程序为程序系统扩展功能所拥有的一种现象和思想。

实现方式:

a.静态多态实现

方法重载实现

在方法调用之前,通过人为方式实现选择的操作来得到不同的执行结果

b.动态多态实现

方法重写引用转型构成动态多态

当java程序中某个方法在调用的时候无法确定执行者是谁,而是通过运行后才能确定执行者,这种现象就属于动态多态。

注意:

封装、继承、多态,只有继承才是实际能看到的,其他两种的内容大多是思想性的东西。

第15天 - - 扫雷

一.目标

1.递归

2.扫雷控制台版

二.知识点

1.递归(开销很大)

递归调用:在程序中用于处理重复执行代码的操作,并且通过自定义方法实现

通俗方式:自己调用自己

 

2.扫雷(控制台)

分析:

游戏对象:

格子对象(Grid)

属性:内容(content)、状态(status)、坐标(Point)

游戏功能:

添加格子(布局)、输出雷区、布雷、8个方向获取、布雷数、踩雷

 

工程架构:

1.创建工程结构

bean:实体类(Grid)

core:游戏核心类(Core)

test:测试类(Test)

 

2.核心功能实现

a.添加格子

通过定义一个格子的数组来完成雷面板的绘制

b.输出雷区

通过循环来获得每个格子对象中的内容,并且显示的内容要根据格子对象的状态来获取

c.布雷

通过雷数来获得循环的次数,并且每次循环的时候要考虑当前格子位置的内容是否已存在雷,如果有雷就继续循环,直到布满10个雷为止。

d.雷数添加

前提必须要考虑如何获得8个方向的格子对象,当得到所有方向后再根据方向位置的格子对象来统计雷数

e.踩雷

该功能和雷数添加功能类似,但踩雷中需要提供辐射效果,所以需要使用递归调用来完成所有空格内容格子的开启。

 

第16天 - - 复习

一.复习

1.封装

a.类

作用:用于在java程序中创建对象(属于对象工厂)

b.对象

作用:构成虚拟世界的组成部分

c.成员(对象有的东西类肯定有、类有的东西对象也有)

属性:为对象提供描述信息

方法:为对象提供行为能力

 

2.继承

关键字:extends

关系:父(父类、基类、超类)子(子类、派生类)关系

特性:

1.单向性(只有一个方向、子类可以访问父类非私有成员)

2.单一性(一个子类只能有一个父类,但一个父类可以包含多个子类)

3.传递性(子类可以通过父类,或者父类的父类进行信息传递)

 

方法重载:

要素:1.必须方法名称相同、参数列表不同(参数个数、类型、顺序)

 

3.多态

方法重写:(方法覆盖)

要素:.

1.必须继承关系

2.方法结构必须完全相同

引用转型:

父类的引用指向子类的实例

Person 父类 show();

Student 子类 show(); --重写

 

Person p = new Student();

p.show(); - -运行后获得子类方法(“.”的时候,获得是父类的,运行后是子)

 

多态类型:

1.静态多态(方法重载)

2.动态多态(方法重写、引用转型)

 

二.目标

1.抽象

2.接口

三.知识点

1.抽象

概念:没有具体的描述内容

作用:在一个类中提供没有具体行为过程的方法的现象

关键字:abstract

类型:

1.方法的抽象

作用:

在一个类中为某个定义的方法提供声明的操作。

例如:

定义一个方法:

public void eat(){

方法体

}

声明一个方法:(没有方法体的方法(抽象方法))

public void eat();

 

2.类的抽象

语法:

访问修饰符abstract 返回类型 方法名(参数列表){

 

}

作用:

一个类中如果出现了抽象方法,那么该类就必须修饰为抽象类,当类被修饰为抽象类后,1.该类不能被实例化2.只能通过引用转型(子类)来获得对象3.规范子类必须有该方法(抽象方法)

 

实现:

在抽象类对象的的获取中,必须通过子类的实现来获得抽象类的实例。

第17天 - - JavaOOP

一.目标

1.抽象

2.接口

3.异常

 

二.知识点

1.抽象

1.当一类中出现了抽象方法,那么该类就会被修饰为抽象类2.抽象类中没有实现的抽象方法,可以通过该类的子类来实现抽象方法3.抽象类不能被实例化,可以通过引用转型来获得该类的实例

 

2.接口

作用:

用于弥补抽象类的不足,1.包含抽象类的实现类不能实现多个抽象类,并且抽象类中会包含抽象方法和非抽象方法,2.同时接口中不会提供属性,只有常量的提供。

关键字:

interface(接口)、implements(实现)

 

语法:

public interface 接口名{

常量;

抽象方法;

}

 

实现方式:

1.一个实现类实现多个接口方式

2.一个实现类实现一个接口,但接口继承了多个接口(接口不是类,所以不受extends约束)

 

引用转型:

1.父类的引用指向子类的实例

2.接口的引用指向实现类的实例

 

3.常量

属于在接口中出现的一种保存数据的变量,该变量属于一种特殊的变量,1.值是不可变的,2.属于程序加载的时候就直接初始化的,3.在当前应用程序中都可以被访问到

static: 属于程序加载的时候就直接初始化的(自动加载)

语法:

public final static 数据类型 常量名 = 值;           //常量名都是全大写

 

例如:

public final static double PI = 3.1415956;

 

访问:

接口名.常量

 

4.抽象类与接口的区别

抽象类:

1.当一类中出现了抽象方法,那么该类就会被修饰为抽象类2.抽象类中没有实现的抽象方法,可以通过该类的子类来实现抽象方法3.抽象类不能被实例化,可以通过引用转型来获得该类的实例

 

接口:

用于弥补抽象类的不足,1.包含抽象类的实现类不能实现多个抽象类,并且抽象类中会包含抽象方法和非抽象方法,2.同时接口中不会提供属性只有常量的提供。

 

5.异常

错误(error)

异常(Exception)(运行时异常):在执行过程中产生的的错误现象

 

a.异常处理

1.try..catch..方式

语法:

try{

被监控的代码块

}catch(异常类型){

处理部分

}

2.throws方式

作用:在程序代码中将出现的异常抛给调用者处理,本身不处理

语法:(写在方法的后面)

public void 方法名() throws 异常类型{

 

}

b.异常创建

关键字:throw       (创建异常)

N.扩展

1.吃饭为什么要用筷子

Java面向对象编程可以看成模拟生活,在人都是人类,人类都需要吃饭的基础上,人吃饭可以使用多种方式,使用筷子只是其中一种,根据不同的人吃饭使用的工具也不一样。

吃饭是传承(继承)下来的,慢慢演变(重写、重载),吃饭的方式发生改变。

 

2.抽象类与接口的区别

相同点:

1.概念上都是抽象的,没有包含足够的信息来描绘一个具体的对象。声明抽象方法时方法不能有方法体。

2.不能直接实例化,实例化需要引用转型,通过抽象类或接口变量(引用)指向子类或实现类的对象,来获得实例

3.子类或实现类如不能实现抽象类或接口的抽象方法,则必须为抽象类或接口

不同点:

抽象类:

1.抽象类使用abstract关键字定义

2.抽象类中变量为普通变量,可以有非abstract方法(既可以做声明也可以做实现)

3.子类只能继承一个抽象类

4.从设计理念来看,抽象类中方法应该为某个类型的本质

接口:

1.接口使用interface关键字定义

2.接口中变量只能为公共的静态的常量,方法必须为public abstract修饰(只能做声明)

3.实现类可以有多个接口

4.从设计理念来看,接口中方法应该为某个类型的扩展功能

第18天 - - API

一.目标

1.了解JavaAPI

2.掌握JavaAPI包

3.掌握JavaAPI - lang包

二.知识点

1.JavaAPI(ApplicationProgramInterface)

java应用程序编程接口 - - java开发工具(20万种) - - 300+种

葵花宝典:JDK API 1.6.0 中文版

 

2.JavaAPI

包结构:

java.lang包

 |--包装类

 |--String类

 |--StringBuffer类

 |--Object类

 |--Class类

 |--Math类

 

java.util包

 |--Date类

 |--集合类       (*)

 

java.io包          (*)

 |--File类

 |--InputStream类/OutputStream类

 |--Reader类/Writer类

 |--FileReader类/FileWriter类

 |--ObjectInputStream类/ObjectOutputStream类

 |--DataInputStream类/DataOutputStream类

 |--InputStreamReader类/OutputStreamWriter类

 |--BufferedInputStream类/BufferedOutputStream类

java.awt包

javax.swing包

--------------------------------------学完以上包,开始项目

java.sql包

java.net包

java.servlet包

 

3.java.lang

路径:

JRE System Library -> rt.jar ->java

java是原始包 javax(x是扩展的意思)

.jar结尾(jar包)

如果不能显示源码:(没有导入src包)

第二个选项 -> jdk安装路径 -> 选择src.zip

 

java语言包:提供语言相关的工具

 

a.包装类

属于基本类型的包装类型 - - 将8种基本类型包装成对象类型

 

方法:

构造方法:传入字符串、对应基本数据类型

包装类.parseXXX(字符串);     将字符串转换成XXX基本类型(char类没有)

包装类.valueOf(字符串);         将字符串转换成该包装类对象类型

包装类.toString();                      将当前数据以字符串获得

 

b.String类

该类型存放的字符串数据属于一种副本类型的数据,数据不能被修改

 

方法:

indexOf(字符串);

通过传入的字符串返回字符串所在位置的索引,匹配传的第一个字符

 

charAt();

通过索引查找位置的字符

 

lastIndexO()

最后一次出现的位置

 

valueOf(基本类型)

将基本类型转换成字符串

 

toUpperCase()

将字符串内容以大写获得

 

toLowerCase()

将字符串内容以小写获得

 

trim()

去除字符串前后空格

 

split(字符串)

通过传入的字符串进行正则匹配,来按照传入的字符串进行截取,将截取的内容以数组保存。

在截取中匹配符号不能使用语言关键字

第19天 - - API-lang包

一.目标

1.String类

2.StringBuffer类

3.StringBuilder类

4.Object类

5.Class类

6.Math类

 

二.知识点

1.String

方法:

a.substring(参数1(begin),参数2(end));     //通过指定范围截取

b.endWith(字符串);                            //判断当前字符串是否以传入的字符串结尾

c.replace(旧的内容 , 新的内容)  //字符串替换

 

2.StringBuffer

作用:

通过字符串内容的修改,并且该类所存放的字符串再多线程编程中属于高效率、高安全的一种字符串容器。(牵扯到线程必须和安全挂钩)

 

方法:(构造方法创建缓冲区,只要有缓冲区,值就是可变的)

a.增          append(字符串);     通过拼接的方式添加字符串内容

b.删          delete();                    

c.改           replace();                  

d.查          toString(字符串);   

 

3.StringBuilder

作用:

用于实现字符串内容的修改,该类所存放字符串在单线程中属于高效率、高安全的一种字符串容器

 

4.Object

作用:属于Java语言中的万能容器。

使用:在反射中使用。

5.Class

作用:

用于存放java语言中的类信息。

例如:

Class c = Person.class;

6.Math

数学类-存放所有的数学相关的功能

7.预习

常规流程:

lang - util - IO - Swing(GUI(图形界面))

下节课预习Swing

N.扩展

1.“+”号连接字符串与StringBuffer的append()方法拼接区别

字符串拼接所用“+”号,效率是最低的,它需要多个步骤,StringBuffer属于自己在缓冲区通过方法修改,效率高更安全)。

2.String类、StringBuffer类、StringBuilder类区别

相同点:

1.都属于字符串容器

不同点:

String:

1.其值存放于常量池中,属于副本类数据,无法对其进行修改

StringBuffer

1.其值存放于缓冲区中,可以进行修改

2.在多线程编程中属于高安全、高效率的字符串容器

StringBuilder

1.其值存放于缓冲区中,可以进行修改

2.在单线程编程中属于高安全、高效率的字符串容器

 

第20天 - - static、final与GUI

一.目标

1.static关键字

2.final、finally关键字

3.javaGUI编程

4.java.awt包和javax.swing包

5.JFrame类(窗体类)

6.JPanel类(面板类)

二.知识点

1.static(静态)

作用:

1. 程序启动的时候就为其分配空间,内存地址为静态域

2.只存在一份地址空间,对象共享一个静态变量

类型:

1.属性的修饰(修饰的属性一般都有值)

public static String name="";

 

2.方法的修饰

public static void play(){

方法体

}

3.块的修饰 - 静态块

static{

方法体

}

 

使用:

在Java程序中访问static修饰的成员直接通过 类名.成员 来获取

 

2.final、finally

作用:

用于修饰最终的意思。

final:

用于修饰属性(该属性属于常量)、方法(该方法不能被重写)、类(该类不能被继承)。

finally:

在异常处理中提供不管有没有异常产生都需要执行的部分,就用finally块包含。

语法:

try{

 

}catch(){

 

}finally{

一般存放所有开关操作

}

 

3.javaGUI编程(Graphical User Interface)

GUI:图形用户界面编程

 

4.GUI编程API(Application Program Interface)

java.awt:界面原始组件

javax.swing:扩展的界面组件

 

5.JFrame类(窗体类)

作用:

用于Java程序创建可视化窗口。

实现步骤:

1.定义一个类继承窗体类

2.设置窗体的属性

3.设置窗体可见

 

6.JPanel(面板类)

作用:

用于在窗体上添加组件的部分

实现步骤:

1.定义一个类继承面板类

2.定义方法设置面板

3.在窗体类中添加面板对象

 

7.布局

类型:

空布局 - - nullLayout

 

8.组件

输入组件:

文本框(JTextfield)

密码框(JPasswordField)

单选框(JRadioButton)

复选框(JCheckBox)

下拉框(JComboBox)

文本域(JTextArea)

按钮(JButton)

……

输出组件:

标签(JLabel)

N.扩展

1.类在哪儿

类属于一个文件,为什么可以使用class来调用方法属性,是因为虚拟机把他变为了对象

2.为什么类被声明时没有调用静态方法

声明的时候是没有任何开销的,当new时或者执行操作时才会加载(静态方法启动时被加载)

3.背景颜色会超出面板(panel)的大小

有时需要设置JPanel的大小,而JPanel的setSize()方法不管用。

因为设置面板大小在显示窗体之前没有用,以后会解决。

//在设置JPanel大小的时候,要用JPanel.setPreferredSize()这个方法才行.然后再用//borderLayout就可以设置上下左右的宽度了。

 

4.常量池不是存放常量吗?变量的值不是存放在栈中吗?

变量的声明是在栈中,但是值是在常量池中的。

 

第21天 - - JavaGUI

一.目标

1.组件

2.事件

 

二.知识点

1.组件

文本框

标签

按钮

密码框

单选框

复选框

下拉框

文本域

2.事件

概念:

正在发生的一件事情

类型:

a.鼠标事件

b.键盘事件

c.焦点事件

d.窗体事件

……

结构:

1.事件源(event)

 

2.监听器(接口)

鼠标监听器

键盘监听器

焦点监听器

窗体监听器

……

3.监听器

a.鼠标监听器

MouseListener

b.点击监听器

ActionListener(面板和窗体不能使用,组件才能使用)

c.键盘监听器

KeyListener

 

N.扩展

1.组件的声明

在javaGUI编程中,所有的组件声明必须以属性方式声明(在类里面声明)因为监听器中如果需要访问外部定义的组件,只能通过属性来获取

2.匿名内部类

在一个方法的参数列表中通过匿名的方式定义一个类的结构,来实现功能的扩展

语法:

public class 类名(){

new 接口名(){

成员

}

}

 

3.通过标签设置图片

语法:(图片通常存放在img(与src文件夹并列)文件夹中)

JLabel jl = new JLabel();

jl.setIcon(new ImageIcon("图片路径"));

 

第22天 - - JavaAPI

一.目标

1.java.util包

2.Date类

3.集合类(java最后学的一个容器,也是最大的容器)

二.知识点

1.java.util包(工具)

该包中用于存放Java语言在开发过程中需要使用到的开发工具,在使用中必须导包

包含的工具:

Scanner

Random

Date

集合(中文,说明里面有多个API)

2.Date

作用:

用于在java程序中存放时间信息(格式:格林威治格式)的一种对象

 

概念:

a.计算机有记载的时间开始?

1900年

b.java语言有记载的时间开始?

1970年 - - 毫秒

区别:

int:秒为单位

long:毫秒为单位

3.集合

作用:

用于在Java程序中整理储存数据操作的一种容器

容器:

变量:

用于存放一种类型的数据(单个

数组:

用于存放一组相同类型的单个数据,必须定义长度(一组

对象:

用于存放不同类型多个数据,不需要制定个数(多个

集合:

用于存放各种不同类型多个数据,并且没有个数的限制,同时可以通过方法来操作存放的数据。

 

分类:(都可以是集合意思)

Collection:(父接口)

|-- List(子接口)

|-- ArrayList(动态数组)

用于对容器数据频繁的读取操作

|-- LinkedList

|-- Vector

|-- Set(子接口)

|-- HashSet

Map:(父接口)

|-- HashMap

 

N.扩展

1.过时方法

在Java代码中会在中间加条黑线表示

2.集合中对象元素调用属性

如果不指定集合类型,只能通过再次强制转换来获取。加上尖括号“<>”指定类型之后则可以直接调用。

3.for、foreach循环的使用场合不同

for:读取同时又要修改

foreach:只能读取

 

第23天 - - JavaGUI

一.目标

1.集合

2.List

3.Set

4.Map

二.知识点

1.List

有序可重复

a.ArrayList(动态数组)

用于频繁的查询和修改集合

b.LinkedList(链表集合)

用于频繁的插入和删除集合

c.Vector(线程集合)

用于在多线程中解决同步。

特征:

属于一种动态数组结构的集合,存放在该集合中的数据属于有序数据,并且数据可以实现重复内容(相同数据)。

2.Set集合(这里Set可以理解为集合)

无序不重复

特征:

属于一种散列结构的集合,存放在该集合中的数据属于无序数据,并且数据不能重复

实现类:

HashSet(散列集合)

3.Map集合

Hash结构(散列),存放Value(值)时会绑定Key(键)。

与文件夹类似,Key就相当于文件名,Value就相当于文件

特征:

属于一种键值对的集合,存放在该集合中的数据必须以键的方式标识,而且键所对应一个值,值可以重复内容,但键不能重复

实现类:

HashMap

N.扩展

1.Set集合

set集合的数据获取采用了的结构方式,所以需要使用迭代器来获得层的迭代

2.请说明List、Set、Map区别

相同点:

1.都为集合接口,其实现类用于存放不同类型的多个数据

2. 指定泛型后可以通过方法来操作存放的数据。

不同点:

父类接口不同:

Lis、Set子接口继承Collection父接口,Map属于父接口。

实现类不同:

List下有三个实现类(集合类)ArrayList、LinkedList、Vector。

Set有一个实现类HashSet。

Map下有一个实现类HashMap。

结构不同:

List属于动态数组且数据属性为有序数据,可重复。

Set属于散列数据结构且数据为无序数据,不可重复。

Map属于散列数据结构且数据为无序数据,键不可重复、值可重复。

3.请说明Collection和Collections的区别?

Collection属于集合接口

Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。

第24天 - - JavaGUI

一.目标

1.java.io

2.File类

3.流

4.InputStream/OutputStream

|--FileInputStream/FileOutputStream

二.知识点

1.java.io

io::input/Output             I/O

在计算机中IO操作体现分为:

1.文件操作  //临时文件存放在内存、永久存放在磁盘

2.网络信息传输

2.File

文件对象:

包含了单个文件文件夹

3.

作用:

用于在Java程序中为应用程序提供对文件内容进行读写操作的一种传输工具

类型结构:

|-- 字节流:(以java(应用程序)为主)(比较多,较好、更安全)

InputStream:(读取至java里面来)

OutputStream:(输出至文件里去)

|-- FileInputStream、FileOutPutStream(文件输入、输出字节流)

|-- ObjectInputStream、ObjectOutputStream(对象输入、输出字节流)

|-- DataInputStream、DataOutputStream(数据输入、输出字节流)

|-- BufferedInputStream、BufferedOutputStream(输入、输出字节缓冲流)

|-- 字符流:

Reader

Writer

|-- FileReader、FileWriter(文件输入、输出字符流)

|-- BufferedRead、BufferedWriter(输入、输出字符缓冲流)

|-- 字节字符流:

InputStreamReader

OutputStreamWriter

4.FileInputStream

文件字节输入流:

将文件的信息通过字节流传递到java应用程序中

 

N.扩展

1.作业

1.

请使用文件对象读取jdk目录下src文件中的所有java类型的文件,并在控制台打印出java文件名和统计出所有java文件的个数

2.

通过读取出的所有文件,将读取到的第一个java文件,将其内容打印在控制台中

2.各种流的区别(浅析)

介绍:

1.外部设备流入中央处理器属于输入,反之输出

2.字节流读一个字节返回一个字节。字符流使用了字节流,读多个字节(字符)。

3.字节流可处理所有数据(图片、MP3…),字符流只能处理纯文字(推荐)。

区别:

字节流:

FileInputStream:(基本流)

读取本地文件内容

BufferedInputStream:

给FileInputStream提供一个缓冲区。(减少对数据源的访问,更高效

DataInputStream:

基于多字节读取,可读取基本数据类型数据。

输出流同理。

字符流:

FileReader:(基本流)

读取字符文件的便捷类。

BufferedReader:

为FileReader提供字符缓冲器,存取数据更有效。

输出流同理

https://pic1.zhimg.com/80/v2-0fb3f3ffde03b088e8b3215f905685ab_hd.jpg

 

第25天 - - JavaGUI

一.目标

1.流

2.FileOutputStream

3.ObjectInputStream、ObjectOutputStream

4.DateInputStream、DateOutputStream

5.字符流

二.知识点

1.FileOutputStream(文件字节输出流)

将Java程序中的数据以字节的形式写入到文件中,并且文件中所保存的内容和程序中格式相同

 

2.ObjectInputStream、ObjectOutputStream(对象字节输入、输出流)

在java程序中将对象数据输入、输出到文件中

 

java.io.NotSerializableException  - - 没有序列化异常

序列化:(要实现Serializable接口(java强制规范))

在实体类中将一个实体类实现有序的传输方式,并且在实现序列化后的对象在保存到文件中时,除类中定义的静态成员都会写入到文件。

3.DateInputStream、DataOutputStream

将数据信息以dat格式写入到dat类型的文件中

 

4.字符流

Reader(字符输入流)、writer(字符输出流)

FileReader:

在程序中读取文件的数据以字符的方式获得

FileWriter:

在程序中将字符数据写入到文件中

5.缓冲区

作用:

用于在数据传输的时候对数据内容进行临时的管理

类型:

BufferedInputStream

BufferedOutputStream

BufferedReader

BufferedWriter

N.扩展

1.作业

1.

使用GUI编程实想QQ注册的功能,并且QQ用户信息以文件方式保存

2.

使用GUI编程实现QQ登录的功能,需要从保存的文件中获取用户信息登录

2.任务

从以下游戏中选定本次项目周的项目(个人项目)

雷电(飞机大战)

坦克大战

植物大战僵尸

像素鸟

吃豆豆

扫雷

超级玛丽

3.汉字的字节数

起因:

字节流,输出存进文件对象的长度时发现文件大小为3字节

原因:

采用utf-8编码,长度由动态的字节组成有可能为1~6字节

其他:

java中char

为内码,采用utf-16编码格式。为2字节,极少为4个字节

utf-8

英文为1个字节,汉字一般为3字节,个别汉字4个字节

 

第26天 - - JavaAdv

一.目标

1.绘图

2.

二.知识点

1.绘图

案例:

打飞机

分析:

1.打飞机游戏存在的对象

飞机、子弹

2.对象的成员

a.飞机:

属性:状态、坐标、图片、矩阵

b.子弹:

属性:状态、坐标、图片、矩阵

3.游戏核心类:

创建飞机(我方飞机、敌方飞机(随机))对象

线程(飞机的移动、飞机的销毁、子弹的移动、、重绘)

 

实现:

1.准备素材:

在工程中创建一个img文件夹存放所有素材

2.创建工程架构

包(util、test、bean、frame、core)

工具类(在util工具包中创建(ImageUtil、SoundUtil))

N.扩展

 

 

第27天 - - JavaThread

一.目标

1.线程

2.案例实现

二.知识点

1.线程

关键字:

进程:在操作系统中正在运行的应用程序。

线程:在应用程序中存在的每个功能。

2.线程使用

定义:

a、Thread类

b、Runable接口

N.扩展

 

 

猜你喜欢

转载自blog.csdn.net/Hello_sum/article/details/81431465
今日推荐