代码改变世界

Java课程总结

2019-12-13 17:23  借过  阅读(327)  评论(0编辑  收藏  举报

Java课程总结

认识Java
Java是一门编程语言,由于Java使用了大多数开发者较为习惯的编程模式,以及自身结构的的良好设计,是的Java成为世界上最炙手可热的编程语言。

Java语言特点
1、简洁有效
2、可移植性
3、面向对象
4、解释性
5、适合分布式变换
6、拥有较好的性能
7、健壮、防患于未然
8、具有多线程处理能力
9、具有较高的安全性
10、是一种动态语言
11、是一种中性机构

Java基础程序设计
Java数据类型划分

数据类型选择的原则
如果要表示整数就使用int,表示小数就使用double;
如果要描述日期时间数字或者表示文件(或内存)大小用long;
如果要实现内容传递或者编码转换使用byte;
如果要实现逻辑的控制,可以使用booleam;
如果要使用中文,使用char避免中文乱码;
如果按照保存范围:byte < int < long < double;

Java基本数据类型

数组和方法
数组的定义及使用
数组是一组相关数据的集合,一个数组实际上就是一连串的变量,数组按照使用可以分为一维数组、二维数组、多维数组等
1.数组中元素的表示方法
想要访问数组里的元素可以利用索引来完成,java的数组索引标号由10开始,以一个score[10]的整形数组为例,score[0]代表第一个元素
一直向下,最后一个为score[9]
2.数组的的静态初始化
之前的数组,所采用的都是动态初始化,所有的内容在数组声明的时候并不具体的指定,而是以默认值的形式出现
静态初始化是指在数组声明后直接为数组指定具体的内容
如果想要直接在声明的时候给数组赋初始值,可以采用大括号完成,只要在数组的生命格式后面加上初值的赋值即可,
3.数组的应用范例

方法的声明及使用
方法就是一段可重复调用的代码段
1、方法的重载
方法的名称相同,但参数的类型和参数的个数不同,通过传递参数的个数及类型不同以完成不同功能的方法调用
2、方法的递归调用
递归调用是一种特殊的调用形式,是方法自己调用自己。
进行方法递归调用的条件
1、方法必须有一个递归的结束条件。
2、方法在每次递归时一定要进行一些变更。

Java面向对象
面向对象程序设计的特性
1、封装性
2、继承性
3、多态性

类的定义

class 类名称{
    属性
    方法
    }

声明一个类需要通过一个关键字class

class Person{
    String name;
    int age;
    public void tell(){
        System.out.println("姓名:"+name+"   "+"年龄:"+age);
    }
}
public class ClassDmeo01 {
    public static void main(String[] args) {
        /*创建对象*/
      Person per = null;  //声明
        per = new Person();  //实例化操作,通过关键字new来实例化
        Person per = new Person();//声明并实例化

    }
}

使用对象的时候,对象必须实例化

构造方法
1、构造方法的名称必须与类名称一致
2、构造方法的声明处不能有任何返回值类型的声明
3、不能在构造方法中使用return返回一个值

String类
实例化String对象

public class StringDemo{
    public static void main(String args[]){
//str是一个对象,那么“hello”就应该保存在堆内存之中
    String str="hello";
    System.out.println(str);
   }
}

String类常用方法

this关键字
this代表它所在函数所属对象的引用。简单说:哪个对象在调用this所在的函数,this就代表哪个对象。
this关键字主要有以下三个作用:
1、this调用本类中的属性,也就是类中的成员变量;
2、this调用本类中的其他方法;
3、this调用本类中的其他构造方法,调用时要放在构造方法的首行。

引用成员变量

public class Person{ 
    String name; //定义成员变量name
    private void SetName(String name) { //定义一个参数(局部变量)name
    this.name=name; //将局部变量的值传递给成员变量
    }
}

static关键字
static关键字主要用来修饰成员变量和成员方法,static方法就是没有this的方法。在static方法内部不能调用非静态方法,反过来是可以的。而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法。这实际上正是static方法的主要用途,使用static的目的是为了在不创建对象的前提下来调用方法/变量。
1、static关键字不影响访问权限
2、不能使用static修饰局部变量
3、静态成员变量虽然独立于对象,但是不代表不可以通过对象去访问,所有的静态方法和静态变量都可以通过对象访问(只要访问权限足够)。

static方法
static方法一般称作静态方法,由于静态方法不依赖于任何对象就可以进行访问,因此对于静态方法来说,是没有this的,因为它不依附于任何对象,既然都没有对象,就谈不上this了。并且由于这个特性,在静态方法中不能访问类的非静态成员变量和非静态成员方法,因为非静态成员方法/变量都是必须依赖具体的对象才能够被调用。

继承
继承的特性
1、子类拥有父类非 private 的属性、方法。
2、子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。
3、子类可以用自己的方式实现父类的方法。
4、继承可以使用 extends 和 implements 这两个关键字来实现继承
5、子类是不能直接访问父类中的私有成员,但子类可以调用父类中的非私有方法,但是不能直接调用父类中的私有成员。

类的继承格式
在 Java 中通过 extends 关键字可以申明一个类是从另外一个类继承而来的

class 父类 {
}
 
class 子类 extends 父类 {
}

final关键字
final关键字可以用来修饰类、方法和变量(包括实例变量和局部变量)
1、使用final声明的类不能有子类
2、使用final声明的方法不能被子类所覆写
3、使用final修饰变量的值不能做再次更改,即不能重新赋值
4、无论final修饰实例变量还是局部变量,都必须在使用前显示赋初值
5、使用final声明的变量即成为常量,常量不可以修改

方法的重载与覆写:
重载的定义:方法名称相同,参数的类型或者个数不同。覆写的定义:方法的名称、参数的类型、返回值类型全部相同
对权限没有要求 被覆写的方法不能拥有更严格的权限。
范围: 发生在一个类中 发生在继承类中。

接口
接口的定义

interface A {// 定义了接口
    public static final String MSG = "Hello";// 全局常量
    // 抽象方法
 
    public abstract void print();
}

接口可以理解为一种特殊的类,里面全部是由全局常量和公式的抽象方法所组成。

对象的多态性:

是指计算机程序运行时,相同的消息可能会送给多个不同的类别之对象,而系统可依据对象所属类别,引发对应类别的方法,而有不同的行为。

多态可分为变量多态与函数多态。变量多态是指:基类型的变量(对于C++是引用或指针)可以被赋值基类型对象,也可以被赋值派生类型的对象。函数多态是指,相同的函数调用界面(函数名与实参表),

传送给一个对象变量,可以有不同的行为,这视该对象变量所指向的对象类型而定。因此,变量多态是函数多态的基础。

异常的捕获和处理
throw和throws关键字
在定义一个方法的时候可以使用throws关键字声明,使用throws声明的方法表示此方法不处理异常,抛给方法的调用处处理。
throw可以直接使用从而抛出一个异常。抛出时直接抛出异常类的实例化对象。

数据库
JDBC是接口,驱动是接口的实现类,没有驱动将无法完成数据库连接,从而不能操作数据库

1、JDBC的四种驱动分类
JDBC-ODBC桥驱动
直接利用微软的ODBC进行数据库的连接操作,但是这种操作性能较低
JDBC本地驱动
直接使用各个数据库生产商的JDBC驱动程序,但是因为其只能应用在特定的数据库上,会丧失掉程序的可移植性,但这样操作的性能更高
JDBC网络驱动
这种网络服务器中间件能够将它的的纯Java客户机连接到多种不同的数据库上,所用的具体协议取决于提供者,这也是最为灵活的JDBC驱动程序
本地协议纯JDBC驱动
直接将JDBC调用转换为DBMS所使用的的网络协议,是Intranet访问的使用的解决方法

2、JDBC的主要操作类及接口
java.sql.DriverManager
用于管理JDBC驱动程序
java.sql.Connection
用于建立与特定数据库的连接,建立连接后便可以执行SQL语句好人获得检索结果
java.sql.Statement
一个Statementduixiang用于执行静态SQL语句,并获得语句执行产生后的结果
java.sql.Result
用于创建表示SQL语句检索结果的结果集,用户通过结果集完成对数据库的访问
java.sql.PrepraedStatement
创建一个可以编译的SQL语句对象,该对象可以被多次运行,以提高执行的效率
java.sql.Driver
定义一个数据库驱动程序的接口

Driver接口
1.装载MySql驱动:Class.forName("com.mysql.jdbc.Driver"); 参数为连接串,实际上是一个具体的驱动类的全名 new A() --Class.forName(“com.yan.A”).newInstance()
2.装载Oracle驱动:Class.forName("oracle.jdbc.driver.OracleDriver")

3、MySQL数据库
MySQL指令
创建数据库:CREATE DATABASE
删除数据库:DROP DATABASE
查看全部数据库:SHOW DATABASES
使用数据库:USE+数据库name

Java IO的操作流程:

(1)使用Flle类打开一个文件
(2)通过字节流和字符流的子类指定输出的位置
(3)进行读和写的操作
(4)关闭输入和输出

总结
本学期的学习也即将结束了,这学期接触的Java编程语言也是和C语言不一样了,能够利用所学到的知识编写一些小程序,学习中难免会遇到一些困难,遇到困难要想办法解决,得到的提升才是有用的,像后面学的多线程售票问题,开始也是遇到了一票多卖的情况,后面发现没有用同步锁将数据进行同步,一张票才会进行多次售卖
,图形界面自己编写一个记事本,用到的东西会比较的多,比较的繁琐,就要自己认真细致的去完成了,当然了,问题还是出现了蛮多的,总而言之,自己还是要多学多练,知识学了是自己的,还是得继续加油