Java学习

这篇博客详细记录了学习Java的过程,从基础语法、面向对象编程到Swing GUI设计,涵盖了变量命名规范、数据类型、运算符、流程控制、异常处理、面向对象的三大特性、字符串处理、集合框架、异常处理、文件I/O和数据库交互等。作者通过实例介绍了如何编写代码、处理用户输入、实现游戏逻辑,并逐步深入到数据库操作和界面设计,为读者提供了全面的Java学习路径。
摘要由CSDN通过智能技术生成

Java学习笔记


一阶段


Week1 2022.08.11



Day1 2022.08.01


 1. 一阶段老师:谢冠华
 2. 目的:(1)掌握Java核心语法(2)培养编程思维(3)熟悉企业工作(开发)形式
 3. 目标:企业标准
 4. 里程碑
    (1)Java核心语法(2)面向对象编程(3)Swing编程
 5. Java安装
 6. JDK安装包安装 win+r打开运行,输入cmd打开 输入Java 验证Java是否安装 输入Java
    -vertion检查Java版本号

配置环境变量


Day2 2022.08.02

 1.  Java是一门编程语言:电脑能够理解的语言

    Java可以用于 (1)编写游戏(2)搭建服务器(3)搭建应用(4)编辑网页
    Java特性   (1)简单性(2)高安全性(3)可跨平台(4)可移植性(5)健壮性
 2. Java分类:
    
    J2SE(Java 2 Standard Edition):标准版,标准的应用开发,常用于企业级的应用服务开发 SE:核心语法相关
    
    J2EE(Java 2 Enterprise Edition):企业版,常用于开发企业级应用。 EE:网页相关
    
    J2ME(Java 2 Micro Edition):微型片版,常用于手机上的开发 ME:移动端相关,合并入EE进行使用
 3. 编写第一个代码:Hello World
    

   public class HelloWorld{     public static void main(String args[]){
        System.out.print("Hello World"); 
            } 
        }

4. Java中JDK(开发工具包)、JRE(Java运行环境)、JVM(Java运行的虚拟机)
    JDK包含JRE
    JRE包含JVM
 5. Java  编译语言
     人写好的代码 电脑直接看 看不懂
     需要经过编译过程  转为字节码文件
     字节码文件 才可以给电脑运行
     
 6. 开发工具:idea
 7. main 方法

public static void main(String[] args) {


}


    主要作为Java程序运行的入口
 1. Java编程
     内容:
 2. Java的基本元素
     (1)标识符:      变量名
     int num = 2;
     num就是变量名, = 是赋值符号, 2是变量的值
     变量命名规则:一个标识符可以是大写或者小写字母、下划线、美元符号的任意顺序组合,但不能以数字开头,不能用关键字命名
    变量命名规范:
    变量的命名规范:
    1、所有的变量、方法、类名:见名知意
    2、类成员变量:首字母小写和驼峰原则:lastName除了第一个单词外,后        面的单词首字母大写。3、局部变量:首字母小写和驼峰原则。
    4、常量:大写所有字母和下划线:MAX_ VALUE PI.
    5、类名:首字母大写和驼峰原则: Man GoodMan每个单词首字母大写6、方法名:首字母小写和驼峰原则:run(),runMain()。

     (2)关键字:Java官方用掉的名字  不能作为变量名用
     (3)常量:不能随意改变的量
     (4)注释:
              快捷键CTRL+/   单行注释 再按取消单行注释

//注释内容


              快捷键SHIFT+CTRL+/ 多行注释 SHIFT+CTRL+\取消多行注释

/*注释内容
注释内容*/

      3. Java数据类型:不同类型的数据 可以做到不同的事

                                    Java是强(强调)类型的语言

        (1)基本数据类型

                官方定义的数据类型,总计:8种

                Boolean类型值只有true(正确)和false(错误)

                char字符类型        需要用单引号,并且单引号内只能由一个字符;数据类型会自动转化

                四种整数                其中byte 最大到127,最小到-128

                两种小数               定义long和float类型时 在long和float类型数字的结尾必须加上大写或小写的L(最好大写)

                                               和大写或小写的F

                                                最常用double

数据类型类型名称所占位数数的范围
Boolean布尔型true/false
char字符型160~65535两种特殊类型
byte字节型8-128~127
short短整型16
int整型32
long长整型64四种整数类型
float浮点型32
double双精度浮点型64两种小数类型
特殊字符的常量表示法
反斜线\\
退格\b
回车\r
进纸符\f
制表符\t
单引号\‘
换行\n
八进制数\DDD
Unicode字符\uHHHH

  • 作业:
  • 一:查找变量命名规范是什么,查询java基本数据类型的转化是什么
  • 二:抄写代码,抄写第四章方框内所有代码

Day3 2022.08.03

1. 变量命名规范

        语义化  需要见名知意

        stuInfoTable        驼峰式命名法  首字母小写叫小驼峰    首字母大写叫大驼峰

        stu_info_table        帕斯卡命名法

2. 复合数据类型

        有无数种复合数字据类型

        复合数据类型一般自带方法和属性,基本数据类型不自带方法和属性

        常用的复合类型:

                String        字符串,只要带双引号的就时字符串

                Scanner    一个用于系统输入的复合数据类型(即 我们给电脑的东西)

                                  Scanner要求输入的时候 控制台不会给出提示,一般需要配合自己写一个提示

3.数据类型的互相转换

        整型、实型、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算,转换从低级到高级

        1、自动转化

                长度短的类型可以自动转化为长的类型

        2、强制转化

                由长度长的类型要转化为长度短的类型必须使用强制转化

                Boolean类型不能进行类型转换

                不能把对象类型转换成不相关类的对象

                转换的时候可能存在精度损失的问题,数字可能不正确

public class Demo{
    public static void main(String[] args) {
        int num = 100;
        byte b1 = (byte)num;
    }
}

4. 运算符

        算数运算符  ....... ++ --

                ++和--会根据写的位置前后决定先自增/自减,再去做别的事情

        关系运算符   <, >, >= ,<= ,==, !=为不等

        布尔逻辑运算符  &&   ||    !

                                    与   或 非

        位运算符 :将数字编程二进制进行运算

                >> , << , >>> , & , | , ~ , ^

        赋值运算符 =,及扩展赋值运算符如 +=,-=

        条件运算符(三目表达式) 条件 ? true时的值 :false时的值

5. Java代码的基础运行流程

        所有Java代码由上往下执行,同一行内从左往右执行,并且只执行一次

6.流程控制语句

        1、分支语句

                if(条件){

                }else if{条件二

                }else{

                }

                条件是  布尔值 或结果为布尔值的表达式

                

        2、循环语句

  • 作业:
  •         查询  普通且,短路且,普通或,短路或的运用
  •                 先手动计算如下式子,然后再交由java程序进行运算 查看结果是否不同
  •                         Int a =10; 求出a和b的值
  •                         Int b = (a++)+a+2*(++a)+(a--)+(a* (--a))
  •                         Int b = a +2*(a--)+a*(a++) + (++a)
  • 使用分支语句完成以下题目 并提交 源码 以及代码和运行结果的截图
  • 用户输入人数,根据人数提供不同房间
  • 1人 单人间 2人 双人间 3-5人 包厢套房 5以上 总统套房
  • 输入三个互不相等的数字 求他们的大小关系
  • 最终输入a>b>c 或者a>c>b 等等 这种类型
  • 输入年份 判断是否是闰年。
  • 规则:4年一闰 百年不闰 400年再闰

Day4 2022.08.04

1. 系统的健壮性

        应对一些设想之外的情况,能否合理的处理问题

2. 代码冗余

        冗长、多余的代码需要简化

3.分支语句

        switch语句特点是针对一个变量 进行判断

        switch(变量名){

         case 数值:

                        当变量等于该数值是执行的代码;

                        break;不能去掉,否则会穿透。

                        default:

                                        就是以上所有值都不相等      的时候执行代码

        }

4. 循环语句

                当我们重复做某件事的时候  就可以使用循环语句

                好处:(1)方便书写  (2)方便维护

                1:for   2:while   3:do while   4:foreach(涉及对象)

        for语句

                for(初始化变量 ; 范围判断 ; 增量){

                        循环体

                        }

循环中可能会出现死循环(即不会被停止的循环)

作业:

        查询:switch 的小括号里面能写什么数据类型,与JDK版本有关


Day5 2022.08.05

1、变量作用域

        for循环种声明的i  不能再循环外使用

        方法内声明的变量  方法外不能使用

2、for循环的执行顺序

        for(初始化变量 ; 范围判断 ; 增量){

                循环体

        }

        (1)初始化变量;(2)范围判断;(3)循环体; (4)增量(5)回到第二步

3、while循环

        while(条件){

        当条件为true时,不断执行代码

        }      

        条件为布尔值或结果为布尔值的表达式

        先判断条件,再执行,回头再判断,直到条件为false

4、do  while

        do{

        循环体

        }while(条件);

        先执行一次,再判断条件,条件为true再回去执行

for 和while循环被称为    前置判断循环

do while 循环被称为   后置判断循环

while 和do while都属于不确定循环次数的循环语句

for属于确定循环次数的循环语句


Week  2


Day6 2022.08.08

1、双重for循环

2、学习的两条腿

                (1)基础知识点(2)足够的练习和经验积累

3、Math.pow(a,b)  a是底数 b是指数

                即a的b次方

4、数组:就是数据的集合,在java中可以用一个变量名存储多个数值

数组的两种声明方式:

        静态声明:

                String info[] = {       };
        动态声明:

                String info[] = new String[5];                  5是数组长度
数组获取内容:下标对应获取  下标取值从0开始 最大到数组长度减1     

                        数组名.length表示数组长度

        看到数组想循环

                null 什么都没有 什么都不是   

5、把多个一维数组合起来放一个数组里那么这个是二维数组


Day7  2022.08.09

代码的可读性

        机器可以运行,但是人也要看得懂代码

        CTRL +  SHIFT +L   格式化代码格式(自动对齐)

System.out.println();

        意为输出并换行

System.out.print();

        没有ln即不换行

写打地鼠游戏

        1:用二维数组代表地图(动态声明)

        2:初始化地图

        3:随机放入老鼠

        4:绘制地图

        5:玩家输入坐标打老鼠

Scanner sc = new Scanner( System.in);
String str = sc.next();//这是输入字符串的方法

算数运算符 == 的

                 本质是        判断                内存中的地址                是否相同

String字符串类型判断字符是否相同

        字符串.equals(“字符串”)

模块化思路

冗余带来的问题:

        (1)书写麻烦(2)维护不方便

如何解决冗余:

        使用        函数/方法        解决冗余

函数/方法(Function)

        一段  具备特定功能的 高度封装的  代码块

函数的使用

        1:函数的声明

        2:函数的调用

函数的声明

        函数五个要素

                (1)修饰符                public(公开的) static(静态的)

                (2)返回值类型        void代表返回值为null(空)

                (3)函数名                类似变量名

                (4)参数列表             暂时不写

                (5)方法体                放在{ }里        就写要执行的代码

                        public static void myFn(){        }

函数的调用

        在main方法中    函数名();        即函数的调用


Day8  2022.08.10

函数名        需要遵循驼峰命名法

参数列表

        三次调用函数结果都是相同的

                解决方法        

                        参数        就是函数执行过程中可能不相同的数值

                        参数分为

                        (1)形参        形式参数

                                只是虚的  不存在  占位置用的  声明过程中声明的

                                声明过程中 必须声明类型

                        (2)实参        实际参数

                                实际的  具备含义的  用在调用过程中  

                                多个参数之间 使用 , 进行分隔   有顺序要求

返回值

        关键字        return;

                teturn;        返回数字出去

                                     结束当前函数的运行

                

变量作用域

        在函数内声明的变量        函数外无法获取

        在函数内声明的变量被称为局部变量

开始封装   猜拳游戏

        先根据功能模块 对代码进行划分

        然后子啊进行封装

1:用户出拳

2:电脑出拳

3:判断结果

4:是否重复游戏

        全局变量写法:public static int user

                                变量user其他方法也可以用

第二个里程碑

        面向对象编程         oop编程

什么是对象

        所有一切  看得见的  摸得着的  都是对象

        世间万物皆对象

如何描述对象

        对象的特点        被称为   属性

        对象的行为        被称为   方法

在于 对现实生活 的模拟


Day9  2022.08.11

面向对象编程

        世间万物皆对象

对象里面有

        属性和方法

                属性代表对象的特征        方法代表了对象的行为

                一定是自己主动做的事情  才是 这个的对象的方法

Java 中的         对象Object和类Class

        由多个相同或者相似的对象        抽象出  类

        物以类聚

类是模板

        确定这个类的对象将会具有什么属性和方法

        模板只是用于设计        无法拿来直接使用,但是制造出来的可以使用

从类当中实例化出对象

Java是一门 面向对象的编程语言

class也定义了一种  新型的数据类型

类名也要语义化

        大驼峰命名法    一般首字母大写

方法         基本类似于之前学过的函数

类写完之后  不能做事情   因为类只是个模板

        要从类中实例化出对象  由对象来做事情

对象使用属性        语法:        对象名.属性

对象调用方法        语法:        对象名.方法名();

属性和方法可以直接调用它本身类的方法        

对象抽象出类  类实例化出对象

面向对象的三大特性

        (1)封装

        (2)继承

        (3)多态

类的封装:

        封装:隐藏具体细节

                使用封装实现限制

                 私有化属性,并提供共有的访问方法

        利用修饰符实现

                public 意为 共有的

                所有类 所有的地方都可以直接访问

                private  意为  私有的

                能且仅能   在本类中使用


Day10  2022.08.12

打地鼠的对象   它们的属性和方法

对象属性方法
地鼠X坐标 ,Y坐标随机坐标
玩家X,Y,积分,血量输入坐标

控制者

Controller

地图、地鼠、玩家初始化地图、放置老鼠、绘制地图、判断是否打中

面向过程

面向对象

两者的差别

        面向过程   只关注事情本身的完成  不关注谁去做

        面向过程   更多关注  谁去做事情  厘清职责

面向对象的三大特性

        (1)封装

        (2)继承

        (3)多态

类的封装:

        封装:隐藏具体细节

                使用封装实现限制

                 私有化属性,并提供共有的访问方法

        利用修饰符实现

                public 意为 共有的

                所有类 所有的地方都可以直接访问

                private  意为  私有的

                能且仅能   在本类中使用

                不写修饰符  即默认default,但是default不能写在前面

                protected   受保护的         和继承有关

 使用类实例化多个对象时,每个对象都需要进行赋值的时候

为了省事,需要借助构造函数

构造函数

        是一个没有返回值(连void也没有) 并且函数名和类名相同的函数

构造函数的特点是 再对象实例化的一瞬间 便会执行

        利用构造函数的参数实现对属性的赋值

        构造函数中获取相同名字的时候,使用就近原则

this

        类似于中文里面的      “我自己的”        指向 对象本身

方法的重载

        即在同一个类中   方法名相同   但是参数列表不同

        参数列表不同  意为  数据类型不同


Week3


Day11  2022.08.15

System.exit(0)    让程序整体退出

equalsIgnoreCase()    判断字符串相等,无视大小写

对象的生命周期

        对象的出生  一旦被声明 并赋值之后 对象出现

        对象的销毁  当该对象没有被指向的时候 就会自动销毁

static

        静态/静态  的意思 就是不依赖对象

        动态的意思 就是依靠对象

static  修饰后  直接通过类名就可以使用

static  的方法  只能访问 static的数据 不能访问普通数据

                        即  动态可以用 静态和动态

                        但是 静态不能用动态      


Day12  2022.08.16

继承

        继承就是 子类 拥有父类的属性和方法

        继承需要符合    is-a关系 父类更通用,子类更具体

关键字        extends  写在类名后面

一个类不可以继承多个类

继承不能滥用

        牵一发动全身,父类改变一次,其他的全部收到影响

        即        系统耦合性过高

继承什么时候用

        足够熟悉项目架构的时候

        现在的继承常用于我门自己写的类去继承 Java官方的类(Swing)

构造函数也可以继承

        运行时,先执行父类的构造函数

        构造函数可以计入参数

                子类依然可以使用构造函数  参数

当父类和子类的构造函数都有参数并且父类需要传入参数时

        关键字    super 

        放在子类的构造函数,必须放在上面,里面  用来  子类找父类

        super(     )可以给父类构造函数传参

        super.   可以在子类中直接调用父类的属性和方法


Day13  2022.08.17

面向对象    多态

        

方法的重写

        父类中的方法,子类也写练一个一摸一样的,最终执行的是子类的方法

重写规则

        修饰符一定不能强于父类   放回置类型  方法名  参数列表  必须一样  才是重写

重构

        代码删了全部重写

接口(interface)

        方法体能省略  但是要用接口

Java中的接口   就是一些没有方法体的结合

好处1:

        规定好项目整体项目开发的规范

好处2:

        规定项目股价    方便填充内容

接口的使用

        被称为接口的实现

         implements

        实现接口的类  需要全部实现  接口中的方法 

有方法体的方法 被称为  实例方法

没有方法体的方法  被称为  抽象方法

接口  可以是多实现一个类      可以实现多个接口

继承不能继承多个

继承代表血缘关系

接口代表社会关系(即  体现职责)


Day14  2022.08.18

接口不能new(实例化)

继承只能有一个,接口可以在同一个类中多实现接口方便团队一起写代码,方便管理

常量

        声明之后  不会改变的量 就是常量

final        最终的意思

        public static final int NUM = 100;  常量的声明,且声明必须赋值

文件名.常量    调用常量的方式

常量既可以在类里面声明   还可以在接口里面声明

 


Day15  2022.08.19

接口的缺陷

        只要实现方法,必须全部实现        一个都不能少

解决方案:

方案1:使用一个父类去实现接口   然后继承父类

方案2:使用抽象类

抽象类

        它还是个类

        关键词 abstract

抽象类中   既可以写   实例方法  也可以写抽象方法

抽象类也是各类  要使用的话得用继承

抽象类和接口一样不能直接被实例化(不能被new)

抽象方法

        必须被重写

        抽象方法必须定义在抽象类中,普通类不能写抽象方法

抽象类和接口的不同点

        接口中只有抽象方法 不能有实例方法     抽象类都可以有

        抽象类用继承,继承只能用一个     接口可以多个

        接口强调功能的实现      抽象类强调所属的继承关系

        接口中的成员变量为常量 不可修改   抽象类中的可以被修改

字符串        String

        字符的序列    某种程度上有类似于字符的数组

        也有下标和长度

indexOf     作用是查找字符串

        没有的返回-1   区分大小写   也可以查找多字符串

StringBuffer        是String的子类

StringBuilder        线程不安全

API        使用文档


Week 3


Day16  2022.08.16

基本数据类型

        本身不带方法

如果要用类似String的方法则使用封装类

        除了int和char之外   其余都是首字母大写  即为封装类

    public static void main(String[] args) {
        int num = 10320;
        Integer newInt = new Integer(num);
        System.out.println(newInt.toString().length());
    }

//输出5

异常

        程序正常可以使用   出现意外  导致程序中断

Java 中处理异常

try{

        可能产生异常的代码段

        }catch(Exception e){

        一旦出现异常,就执行内部代码

        }

e.printStackTrace();   //提示报错信息

Exception    代表所有异常的总父类

代码调试        DeBug调试

分包

设计模式

        MVC模式

        M:  Model        模型层        (当前指所有实体类)

        V:   View          视图层        (指所有视图相关类)

        C:   Controller  控制层        (指所有管理者相关类)

import Model.*;//引入该包的所有文件

登录/注册功能

        需要:  1.账号    2.密码   

登入需要做几步事情

注册需要做几步事情

本游戏中 用户有多个用户

        具体几个用户,不确定

需要一个可变长度并且可以存储玩家的复合类型的存储方式

arrayList        属于数据结构之一        它的父类是List类

        某种意义上  arrayList就是个可变长度的数组

列表的方法

        add();列表的添加

        size();查看列表长度

        get(下标);根据列表下标获取内容


Day17  2022.08.23

arrayList        基本可以理解为可变长度的数组

        .size()  获取列表长度

        .get()   获取列表内指定下标的元素

        .add()  往列表内添加内容

        .remove()  删除指定下标的内容

        .clear()        清除列表里面的所有内容

ArrayList不能存储基本类型

        如果要存基本数据类型,就要使用它的包装类

注册

        1:输入账号

        (2:判断是否重复,如果重复   直接结束注册)

        3:输入密码及确认密码

        4:判断两个密码是否相同

        5:存储账号密码

        6:player存到列表里面

        7:提示   注册成功

登录

        1:输入账号和密码

        2:开始比较验证码是否正确

        3:循环列表进行比较

        4:如果账号密码相同,提示成功

        5:如果不相同,提示登录失败


Day18  2022.08.24

界面

        客户端   client

        浏览器    browser

Swing

        所有内容    基本都要带J开头

Swing的结构

        顶级容器

        中间容器

        组件

JFrame:用于框架窗口的类(顶级容器之一)

package View;

import javax.swing.*;

public class MyFirstFrame extends JFrame {
    public MyFirstPenel myPanel;
    public MyFirstFrame(){
        setSize(600,400);//设置大小
        setResizable(false);//设置不能改大小
        setLocationRelativeTo(null);//设置位置居中
        setTitle("我的第一个界面");//设置标题
        setDefaultCloseOperation(EXIT_ON_CLOSE);//设置点关闭的时候退出程序

        myPanel = new MyFirstPenel();//实例化中间容器
        add(myPanel);

        //添加菜单
        //1:菜单栏
        JMenuBar myBar = new JMenuBar();
        //2:菜单
        JMenu menu1 = new JMenu("菜单1");
        myBar.add(menu1);

        //绝大部分组件用add添加,但是菜单栏用setJMenuBar
        setJMenuBar(myBar);
        //3:菜单项
        JMenuItem item1 = new JMenuItem("菜单项1");
        JMenuItem item2 = new JMenuItem("菜单项2");
        JMenuItem item3 = new JMenuItem("菜单项3");
        menu1.add(item1);
        menu1.add(item2);
        menu1.add(item3);

        //设置子菜单
        JMenu menu2 = new JMenu("子菜单演示");
        myBar.add(menu2);
        JMenuItem item4 = new JMenuItem("普通项");
        JMenu smallMenu = new JMenu("子菜单");
        JMenuItem smallItem = new JMenuItem("子菜单的项目");
        smallMenu.add(smallItem);
        menu2.add(item4);
        menu2.add(smallMenu);


        setVisible(true);//界面可视化,放在所有内容最下面
    }
}

中间容器(Panel)和中间的组件

package View;

import javax.swing.*;
import java.awt.*;

public class MyFirstPenel extends JPanel {
    public MyFirstPenel(){
//        setBackground(new Color(21, 47, 68));//设置背景颜色
        setLayout(null);//设置布局为自由布局

        //文字组件,括号内表示文字内容
        JLabel lb1 = new JLabel("今天天气不错");
        lb1.setBounds(10,10,120,10);
        add(lb1);

        //按钮组件,括号内表示按钮内容
        JButton btn1 = new JButton("点击一下");
        btn1.setSize(120,36);//设置大小
        btn1.setLocation(50,50);
        add(btn1);

        //单行文本框,括号内表示文本框长度
        JTextField textField = new JTextField(10);
        add(textField);

        //多行文本域,括号内表示行数,长度
        JTextArea textArea = new JTextArea(10,10);
        add(textArea);


    }

    //背景图片
    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        //实现图片绘制的方法
        Image bgImg = new ImageIcon("images/bg.png").getImage();
        g.drawImage(bgImg,0,0,600,400,null);
    }
}

布局

        就是组件摆放的方式

        自由布局 setLayout(null);

背景图

        使用JPanel自带的方法

        paintComponent

菜单

        放在顶级容器里面

        1、菜单栏  (JMenuBar)

                需要注意的是,添加的时候用的是setJMenuBar

        2、菜单(JMenu)

        3、菜单项(JMenuItem)


Day19  2022.08.25

乱码:字符集

布局

        自由布局        setLayout(null);

        FlowLayout        流式布局   是JPanel的默认布局

        BorderLayout    边界布局    是JFrame的默认布局

        GridLayout        网格布局

        CardLayout        卡片布局

流式布局

        组件一排一排的放置,防止不下换行

边界布局

        BorderLayout 有个特点,如果是add方法做添加,必须指定位置添加

使用布局时,不能用setSize()改大小

                        用setPreferredSize(new Dimension(宽,高));设置大小

事件

        Java中的事件就是一件能够被Java捕获到的事情

Java处理时间的模式   是   授权事件模型

        1:事件源

        2:监听器


Day20  2022.08.26

事件

        Java中的事件就是一件能够被Java捕获到的事情

ActionListener   动作监听        可以给按钮以及菜单项的点击都能监听

                因为只有一个方法,所以没有抽象类

一个监听器完成所有监听,不同按钮之间如何区分

        ActionCommand        动作指令

实现注册功能

        方法是再监听中调用到controller的注册方法

监听器使用

        1:写好监听器 
        2:实例化监听器
        3:给组件注册监听 

        


Day21  2022.08.29

定时器

        每隔一段时间  做点什么事情 

两大关键要素     

        1.间隔时间        2.做什么事情

Timer 是定时器的意思,但是自己创建的不能教Timer

timer中使用actionListener代指要做的事情

        但是它不是监听器

Timer必须要结合界面使用

如何判定命中

        碰撞体积检测   坐标重叠

目标所在区域和鼠标点击的位置进行判断

鼠标坐标的获取    e.Point();


二阶段


Day0(起头) 2022.09.16

数据库:DataBase

作用:存储数据

内存:列表、变量、8大数据类型

        程序关闭,断电就丢失了

硬盘:保存为文件

需要通用的格式,方便程序的访问、存取、储存等

1、数据结构

        (1)关系型数据库                表格与表格之间的关系

                                                        Mysql、Oracle、SQL Server等

        (2)对象数据库                        Oracle

        (3)键值对数据库               大数据分析

                                                         Redis、Hbase、Hadoop

2、数据的容量

        小型        excel、access、sqlite【手机、终端】

        中型        MySQL     免费、开源

        大型        Oracle

创建表:

        学生表:

        列:学号、性别、年龄、生日等——————>列或者字段

        类:属性----------------------->数据类型:八大基本数据类型

                                                        字段类型

                                                        常用:  int double varchar(可变长度)  date/time/datetime

                                                        date:日期        yyyy-mm-dd

                                                        time:时间        hh:mm:ss

                                                        datetime:        yyyy-mm-dd hh:mm:ss

创建表的语法:

        先选择数据库:use +数据库名;

        create  table  表名(   列名    类型);

向表中插入数据

        insert into 表名 (num,sex,name,age,birthday)

分类:

        DDL:        创建、删除、修改表(视图、触发器)等        数据定义语言

        DML:        insert update delete select 插入、修改、删除、查询数据等        数据操作语言

        DCL:        数据控制语言        use database,权限赋值


Week1


Day1  2022.09.19

二阶段里程碑:

        1、MySql        2、网络通讯        3、IO流        4、JDBC        5、多线程

二阶段学习:

        1、一阶段知识巩固,精进

        2、逻辑思想,提升编程思维能力

        3、学习查阅API

数据类型:int  double  float  

                varchar:字符串        datetime,date:时间

CRUD(增删改查):

insert into 表名 (        ) values(          )        --增加

delete from 表名 where<限制条件>              --删除

update 表名 set uname = '      '                     --修改

select  查询的东西   from 表名 where<条件>--查询


Day2  2022.09.20

分组查询:关键词:group

        select * from 表名 group by 字段 having 条件(分组条件)        根据字段分组

内连接: 表1  inner join 表2 on 条件


Day3  2022.09.21

jdbc:

        是Java处理db的一个计数,其中保安大量的类和接口等API,以及连接DB驱动程序

sql语句

        查询         返回        一个表

        增删改      返回        所受影响的行数   int

        

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值