Java学期总结

 

学期总结

学习Java已经是学期尾声了,总结一下自己在学习的时候,虽然上课是听的认真的,但是课后没有练习。导致知识点有很多盲区。

虽然学期接近尾声,但是我们队Java的学习才刚刚进入。我们要坚持,耐得住寂寞。

 

面向对象的基本概念

(1)对于面向对象的程序设计有三个主要特征:封装性,继承性,多态性。

封装性

为属性封装:private 属性类型 属性名称;

为方法封装:private 方法返回值 方法名称(参数列表){}

构造方法

1.构造方法的名称必须与类名称一致

2.构造方法的声明处不能有任何返回值类型的声明

3.不能再构造方法中使用return返回一个值

构造方法定义格式

class 类名称

{

    访问权限   类名称  (类型1 参数 1,类型2 参数 2, ......)

   {

       程序语句;

        ........     //构造方法没有返回值

   }

}

 

 (2)类与对象的关系

类:定义出一个基本的模板,代表着一个共性。对象:每一个具体的人,根据不同给予不同的姓名,代表一个个性。定义一个类,要声明成员变量(属性),然后定义方法的内容。当定义了一个类后,要使用这个类,则需要通过对象。一定要记住如果一个对象要被使用,则对象需要被实例化。在开发中,每个类可以产生多个实例化对象,只要在实例化对象时使用了关键字new,那么就表示开辟新的堆内存空间,而每一个实例化对象都将会占据自己的堆,栈内存。

 

(3)当我们创建一个类后,这一类中就会有多个对象,对象在可以被使用之前必须要被正确地实例化。

实例化作用:

1.检查类是否加载

2.分配父类型空间, 按照属性分配空间, 属性自动初始化为"零"

这两个作用是我所知道的,当然我说的可能不全面,希望以后能补充完整

 

(4)为什么私有属性要使用set跟get方法设置和访问?

将数据与行为进行分离,体现了对象的封装性,封装就是将属性私有化,提供公有的方法访问私有的属性。我个人理解就是每个人都有特定的名字跟特定的性格,不能随意修改,只有通过特定的方法才能修改,所以我们将成员变量声明为private,再通过 public的方法来对这个变量进行访问

 

 (5)我放过一个经常的错误就是,前面定义类属性的类型的时候一定要保证后面调用这个类的属性,类型一定要保证跟前面保证一致

举个例子:

private double math;

public float getMath()

{

   return math;

}

这样是不行的,前面用double,后面用float,这种数据类型的转换是不被认可的。

 

三.java中String类中常用的方法

(1)字符串与字符数组的转换

用toCharArray()方法将字符串变为字符数组

String str = "abcdef";

char c[] = str.tocharArray();

 

(2)从字符串中取出指定位置的字符

String str = "abcdef"

System.out.println(str.charAt(x));    //x为第几个字符

 

 

(3)字符串与byte数组的转换

String str = "abcdef";
byte c[] = str.getBytes();

 

 

(4)取得一个字符串的长度

Srting str = "abcdef";

System.out.print(str.length);

 

 

(5)查找一个字符串是否存在

复制代码
复制代码
String str = "abcdef";

System.out.print(str.indexOf("i"));     //i为字符,即查到指定字符位置




String str = "abcdef";

if(str.contains("i"))
{

System.out.print("存在这个字符");
}
复制代码
复制代码

 

 

(6)去掉左右空格

String str = " abcdef ";

System.out.print(str.tirm());

 

 

 (7)字符串截取

String str = "abcdef";

System.out.print(str.substring(i));  //i表示从那个位置开始截取,为数字

System.out.print(str.substring(0,5));  //表示从0-5截取

 

 

 (8)按照指定的字符串拆分字符串

复制代码
复制代码
String str = "abcdef";

String c[] = str.split("i");   //i表示要拆分的内容

for(int i=0;i<c.length;i++)    //输出拆分的内容
{
System.out.println(c[i]);
}
复制代码
复制代码

 

 

 (9)字符串大小写转换

”要转换的内容“.toUpperCase;              小写转换大写
”要转换的内容“.toLowerCase; 大写转换小写

 

 

 (10)判断是否以指定的字符串开头或者结尾

复制代码
复制代码
if(str.startsWith("i"))            //i为指定的内容
{
    System.out.println("以i结尾")
}



if(str.endsWith("i"))
{
   System.out.println("以i开头");
}
复制代码
复制代码

 

 

 (11)不区分大小写进行字符串比较

equals      //这个比较是区分大小写的


equalslgnoreCase   //这个比较是不区分大小写的

 

 

 (12)将一个指定的字符串,替换成其他的字符串

String str = "abcdef";     

String newstr = str.replaceAll("c","d");     //将所有的c换成d

System.out.println(newstr);

 

四.继承

  (1)类的继承格式

class 父类{}       //定义父类
class 子类  extends  父类{}      //使用extends关键字实现继承

 

通过子类继承父类

只准多层继承不能多重继承,在java中只准单继承,不能使用多重继承,即:一个子类只能继承一个父类。

 

继承注意事项

子类是不能直接访问父类的私有成员的,但是子类可以调用父类中的非私有方法,但是不能直接调用父类中的私有成员。子类直接访问父类的私有属性受限制,而要通过setter()或者getter()调用,就可以访问了

 

(2)继承的进一步研究

序号 区别点 重载 覆写
1 单词 Overloading Overriding
2 定义

方法名称相同,参数的类型

或个数不同

对权限没有要求

方法名称,参数的类型,返回值类型全部相同

被覆写的方法不能拥有更严格的权限

3 范围 发生在一个类中 发生在继承类中

 

 

 

 

 

 

序号 区别点                                   this super
1 属性访问 访问本类中的属性,如果本类中没有此属性则中父类中继续查找 访问父类中的属性
2 方法 访问本类中的方法,如果本类中没有此方法,则从父类中查找 直接访问父类的方法
3 调用参数 调用本类的构造,必须放在构造方法的首行 调用父类构造,必须放在子类构造方法的首行
4 特殊 表示当前对象 无此概念

 

 

 

 

 (3)final关键词

使用final声明的类不能又子类

使用final声明的方法不能被子类调用

使用final声明的变量即成为常量,常量不可以修改

 

  (4)抽象类的基本概念

包含一个抽象方法的类必须是抽象类

抽象类和抽象方法都要使用abstract关键声明:

抽象方法只需要声明而不需要实现

抽象类必须被子类继承,子类(如果不是抽象类)必须覆写抽象类中全部的抽象方法

 

五.

(一)在Java中可以使用instanceof来判断一个对象到底属于哪个类,对象instanceof类返回boolean类型

(二)接口可以理解为一种特殊的类,里面全部是由全局变量和公共的抽象方法所组成;与抽象类一样,接口要使用也必须通过子类,

(三)一个子类可以同时继承抽象类和实现接口。

(四)对象向上转型: 父类 子类对象 = 子类实例; 对象向下转型: 子类 子类对象 = (子类)父类实例;

(五)允许一个抽象类实现多个接口。一个接口是不允许继承抽象类的。允许一个接口继承多个接口。一个接口不能继承一个抽象类,但是可以通过extends关键字同时继承多个接口,实现接口的多继承。

 

六.  

1.抽象类和接口都不能直接实例化,如果要实例化,抽象类变量必须指向实现所有抽象方法的子类对象,接口变量必须指向实现所有接口方法的类对象。

2.抽象类要被子类继承,接口要被类实现。

3.接口只能做方法申明,抽象类中可以做方法申明,也可以做方法实现

4.接口里定义的变量只能是公共的静态的常量,抽象类中的变量是普通变量。

5.抽象类里的抽象方法必须全部被子类所实现,如果子类不能全部实现父类抽象方法,那么该子类只能是抽象类。同样,一个实现接口的时候,如不能全部实现接口方法,那么该类也只能为抽象类。

6.抽象方法只能申明,不能实现。abstract void abc();不能写成abstract void abc(){}。

7.抽象类里可以没有抽象方法

8.如果一个类里有抽象方法,那么这个类只能是抽象类

9.抽象方法要被实现,所以不能是静态的,也不能是私有的。 

10.接口可继承接口,并可多继承接口,但类只能单根继承。

 

区别点 抽象类 j接口
定义 包含一个抽象方法的类 抽象方法和全局变量
组成 构造方法,抽象方法普通方法,常量,变量 常量,抽象方法
使用 子类继承抽象类 子类实现接口
关系 抽象类可以实现多个接口 接口不能继承抽象类,但可以继承多个接口
常见设计模式 模板设计 工厂设计,代理设计
对象 都通过对象的多态性产生实例化  
局限 抽象类有单继承的局限 接口没有单继承的局限
实际 作为一个模板 是作为一个标准或是表达一种能力
选择 如果抽象类和接口都可以使用,有限使用接口,避免单继承的局限  
特殊 一个抽象类中可以包含多个接口,一个接口中可以包含多个抽象类  

 

 

 

 

 

 

 

 

 

一、键盘事件及监听处理:
1.在Swing的事件处理中可以对键盘的操作进行监听,直接使用KeyListener接口。
KeyListener接口的常用方法

KeyEvent事件的常用方法

二、鼠标事件及监听处理:
1.MouseListener接口方法:

MouseEvent事件的常用方法:

鼠标拖拽事件及监听处理:
在Swing的事件处理中可以使用MouseMotionListener接口完成鼠标的拖拽操作。

三、单选钮:JRadioButton
1.在swing中可以使用JRadioButton完成一组单选钮的操作。
常用方法:

四、菜单组件
1.JMenu与JMenuBar
JMenu组件可以实现菜单类,JMenuBar组件的功能是用来摆放JMenu组件。

JMenuBar类的常用方法:

JMenu类的常用方法:

2.JMenuItem
JMenuItem继承AbstractButton类,

JMenuItem的常用方法:

数据库总结:

JDBC是Java提供的一套数据库操作的标准,不同的数据库生产商要按照标准生产数据库驱动,我们开发者只需要掌握核心的接口与类就可以通过SQL实现任意的数据库操作。

JDBC的主要操作类及接口:

Java.sql.CallableStatement:用于执行SQL存储过程

Java.sql.Types:定义了表示SQL类型的常量

java.sql.DriverManager :用于管理jdbc驱动程序
Java.sql.Connection :用于建立与特定数据库的连接
Java.sql.Statement 一个Statement的对象用于执行静态sql语句,并获得语句执行后产生的后果
Java.sql.PreparedStatement 创建一个可以编译的sql语句对象,该对象可以多次被运行,以提高执行效率,是Statement的子接口
Java.sql.ResultSet 用于创建表示sql语句检索结果的结果集,用户通过结果集完成对数据库的访问

Java.sql.CallableStatement:用于执行SQL存储过程

Java.sql.Types:定义了表示SQL类型的常量

在JDBC中基本操作中最常用的类和接口就是DriverManger、Connection、Statement、Result、PrepaerdStatement。

2.MySQL数据库:

MySQL的官方网站是:www.mysql.com

MySQL的安装及配置:端口设置默认值是3360.

posted @ 2019-12-13 17:46  4am_Godv  阅读(291)  评论(0编辑  收藏  举报