java第一学期 告一段落,有一说一,有点费头发.........
废话不多说进入正题,java相比于C语言更加偏向于抽象,有关于所学我有必要唠嗑一下 啊哈哈哈
一.关于java的数据类型及函数
1.数据类型:
1):基本数据类型:byte、short、int、long、float、double、char、boolean
2):引用数据类型: 数组、类、接口
级别从低到高为:byte,char,short(这三个平级)–>int–>float–>long–>double
自动类型转换:从低级别到高级别,系统自动转的;
强制类型转换:什么情况下使用?把一个高级别的数赋给一个别该数的级别低的变量;
2.break与contimue的区别:
break:作用于switch ,和循环语句,用于跳出,或者称为结束。
break语句单独存在时,下面不要定义其他语句,因为执行不到,编译会失败。当循环嵌套时,break只跳出当前所在循环。要跳出嵌套中的外部循环,只要给循环起名字即可,这个名字称之为标号。
continue:只作用于循环结构,继续循环用的。
作用:结束本次循环,继续下次循环。该语句单独存在时,下面不可以定义语句,执行不到。
3.函数的作用:
1)、用于定义功能。
2)、用于封装代码提高代码的复用性。
注意:函数中只能调用函数,不能定义函数。
主函数:
1)、保证该类的独立运行。
2)、因为它是程序的入口。
3)、因为它在被jvm调用。
函数定义名称是为了对该功能进行标示,方便于调用;为了通过名称就可以明确函数的功能;为了增加代码的阅读性。
二.关于java面向对象:
1.在类中定义其实都称之为成员。成员有两种:
1:成员变量:其实对应的就是事物的属性。
2:成员函数:其实对应的就是事物的行为。
所以,其实定义类,就是在定义成员变量和成员函数。但是在定义前,必须先要对事物进行属性和行为的分析,才可以用代码来体现。
private int age;//私有的访问权限最低,只有在本类中的访问有效
2.成员变量和局部变量的区别:
1:成员变量直接定义在类中。
局部变量定义在方法中,参数上,语句中。
2:成员变量在这个类中有效。
局部变量只在自己所属的大括号内有效,大括号结束,局部变量失去作用域。
3:成员变量存在于堆内存中,随着对象的产生而存在,消失而消失。
局部变量存在于栈内存中,随着所属区域的运行而存在,结束而释放。
方法的覆写是指子类定义了与父类中同名的方法,但是在方法覆写时必须考虑到权限,即被子类覆写的方法不能拥有父类方法更加严格的访问权限。
3.使用super能调用父类的构造方法,普通方法和非私有属性。
4.super和this都必须放在首行,故不能同时使用。
5.使用final声明的类不能有子类2.使用final声明的方法不能被子类所覆写3.使用final声明的变量即为常量,不可修改4.使用final声明变量时,要求全部的字母大写
6.向上转型:子类对象 →父类对象(自动转换)
7.向下转型:父类对象 →子类对象(强制转换)注:首先要进行向上转型,然后在进行强制类型转换。
8.封 装(面向对象特征之一):是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
好处:将变化隔离;便于使用;提高重用性;安全性
封装原则:将不需要对外提供的内容都隐藏起来,把属性都隐藏,提供公共方法对其访问。
9.继 承 (面向对象特征之一)
10.this和super差异:
1.super()和this()类似,区别是,super()从子类中调用父类的构造方法,this()在同一类内调用其它方法。
2.super()和this()均需放在构造方法内第一行。
3.this和super不能同时出现在一个构造函数里面,因为this必然会调用其它的构造函数,其它的构造函数必然也会有super语句的存在,所以在同一个构造函数里面有相同的语句,就失去了语句的意义,编译器也不会通过。
4.this()和super()都指的是对象,所以,均不可以在static环境中使用。包括:static变量,static方法,static语句块。
11.方法的重载与覆写:
重载的定义:方法名称相同,参数的类型或者个数不同。覆写的定义:方法的名称、参数的类型、返回值类型全部相同
对权限没有要求 被覆写的方法不能拥有更严格的权限。
范围: 发生在一个类中 发生在继承类中。
13..throw和throws关键字
在定义一个方法的时候可以使用throws关键字声明,使用throws声明的方法表示此方法不处理异常,抛给方法的调用处处理。
throw可以直接使用从而抛出一个异常。抛出时直接抛出异常类的实例化对象。
14.抽象类: abstract
抽象:不具体,看不明白。抽象类表象体现。
在不断抽取过程中,将共性内容中的方法声明抽取,但是方法不一样,没有抽取,这时抽取到的方法,并不具体,需要被指定关键字abstract所标示,声明为抽象方法。
抽象方法所在类一定要标示为抽象类,也就是说该类需要被abstract关键字所修饰。
抽象类的特点:
1:抽象方法只能定义在抽象类中,抽象类和抽象方法必须由abstract关键字修饰(可以描述类和方法,不可以描述变量)。
2:抽象方法只定义方法声明,并不定义方法实现。
3:抽象类不可以被创建对象(实例化)。
4:只有通过子类继承抽象类并覆盖了抽象类中的所有抽象方法后,该子类才可以实例化。否则,该子类还是一个抽象类。
抽象关键字abstract与final , private , static关键字不能共存
三.java应用程序设计
1,继承Thread类创建线程:属于Runnable接口的一个实例,代表一个线程实例。
2,实现Runnable接口创建线程:
如果自己的类已经extends另一个类,就无法直接extends Thread,此时,可以实现一个Runnable接口
3,Thread类和Runnable接口的区别
实际上Thread类和Runnable接口之间在使用上也是有所区别的,如果一个类继承Thread类,则不适合于多个线程共享资源,而实现了Runnable接口,则可以方便的实现资源的共享。
4,通过synchronized实现资源同步
5.JavaIO以及其操作流程
以下是针对文件本身操作的
createNewFile(); 创建新文件
delete(); 删除一个指定文件
mkdir(); 创建一个文件夹
public String[]list(); 列出全部名称,返回一个字符串数组
public File[]listFiles(); 列完整的路径,返回一个File对象数组
isDirectory(); 判断一个给定的路径是否是目录
RandomAccessFile类可以对文件内容进行操作
不同操作系统的路径分隔符也是不同的,windows的是“”,Linux的是“/”。
JavaIO的操作流程
(1)使用Flle类打开一个文件。
(2)通过字节流和字符流的子类指定输出的位置。
(3)进行读和写的操作。
(4)关闭输入和输出
6.字节输入流,字节输出流
常用的字节输出流主要有:
OutputStream
FileOutputStream
BufferedOutputStream 【BufferedOutputStream不是OutputStream的直接实现子类,是FilterOutputStream的子类】流,字符输入流,字符输出流。
常用的字节输入流主要有:
InputStream
FileInputStream
BufferedInputStream 【BufferedInputStream不是InputStream的直接实现子类,是FilterInputStream的子类】
7.字符输入流,字符输出流。
常见的字符输入流有:
Reader
InputStreamReader
FileReader
BufferedReader
常见的字符输出流有:
Writer
OutputStreamWriter
FileWriter
BufferedWriter
8.其他容器
1、JPanel:使用JPanel完成各种复杂的界面显示,在其中可以加入任意的组件。
JPanel:(在JPanel中可以加入任意的组件,然后直接将JPanel容器加入到JFrame容器中)
JFrame frame = new JFrame("")
JPanel pan = new JPanel();
pan.add(new JLabel(" "));
frame.add(pan);
2、JSplitPane :主要功能是分割面板,可以将一个窗体分为两个子窗体,可以水平排列也可以是垂直排列。
JSplitPane(分割面板,将一个窗体分割为两个子窗体)
public static final int HORIZONTAL_SPLIT //水平分割
public static final int VERTICAL_SPLIT //垂直分割
public JSplitPane(int newOrientation) //创建对象,并指明分割方式
publci void setDividerSize(int newSize) //设置分割条大小
3、JTabbedPane:在一个面板上设置多个选项卡用户选择。
JTabbedPane(选项卡,一个面板设置多个选项卡)
public void addTab(String titel,Icon icon,Component component,String tip) //添加一个有标题,有图标,有提示信息的组件
static final int TOP/BOTTON/LEFT/RIGHT //表示指向框顶部/底部/左部/右部位置
public JTabbedPane(int tabPlacement) // 创建对象,并指定选项卡布局
4、JScrollPane:Swing中JScrollPane的主要功能就是为显示的内容加上水平滚动条。
JScrollPane(添加滚动条)
static final int HORIZONTAL/VERTICAL_SCROLLBAR_ALWAYS //始终显示水平/垂直滚动条
static final int HORIZONTAL/VERTICAL_SCROLLBAR_NEVER //任何情况下都不显示水平/垂直滚动条
static final int HORIZONTAL/VERTICAL_SCROLLBAR_AS_NEEDED //根据自身需要显示水平/垂直滚动条
5、JDesktopPane与JInternaIFrame:JDesktopPane规定了一个父窗体的基本形式,而JInternaIFrame规定了各个子窗体,JInternaIFrame需要加入到JDesktopPane中。
9、事件处理
1.事件和监听器
事件监听器机制是观察者模式的一种,通过把事件源和事件处理流程以监听器的方法隔离开来,减小了主流程与被触发事件的执行流程间的耦合,便于代码的维护和对事件处理流程的扩展。
在事件监听机制中,涉及到三个角色:事件、发布者和监听器
事件:在事件源和事件监听器之间传递信息的对象实体。
发布者:在事件发生后,负责把事件发布到监听者的对象。
监听者:监听事件,并进行事件处理或转发的对象。
Java中提供了事件监听器实现的框架,使用Java中的事件监听器,需要熟悉以下几个类或接口:
1. EventObject:事件的基类,在Java中自定义事件时需要继承的基类,其定义了事件源——Object类型的属性,可以把发生事件所在的类实例的引用传递过来,以便于在事件处理流程中使用(如果有使用要求的话)。在自定义的事件中,还可以定义自己应用所需的其他属性。
2. EventListener:自定义事件监听器必须实现的接口,没有具体方法,只起到标识作用
10.窗体事件(WindowListener)
常用接口方法
void windowActivated/windowDeactivated(WindowEvent e) //将窗口变为活动/不活动窗口时触发
void windowClosed/Closing/Iconified(WindoowEvent e) //当窗口被关闭时/正在关闭/最小化时触发
最后一章最有趣有关于程序设计的