java学习 笔录.docx

上传人:b****2 文档编号:24450609 上传时间:2023-05-27 格式:DOCX 页数:19 大小:456.52KB
下载 相关 举报
java学习 笔录.docx_第1页
第1页 / 共19页
java学习 笔录.docx_第2页
第2页 / 共19页
java学习 笔录.docx_第3页
第3页 / 共19页
java学习 笔录.docx_第4页
第4页 / 共19页
java学习 笔录.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

java学习 笔录.docx

《java学习 笔录.docx》由会员分享,可在线阅读,更多相关《java学习 笔录.docx(19页珍藏版)》请在冰豆网上搜索。

java学习 笔录.docx

java学习笔录

1、隐式转换只能是常量转换而不能是变量

2、继承是发生在类与类之间。

继承是可以单继承,也可以多层继承。

3、多态是指对象在运行期和变异期具有两种状态,多态的使用代码具有更多的灵活性和重用性。

4、面向过程和面向对象最明显的区别就是,面向对象时按照要完成的功能来实现的,而面向过程是按照解决这个问题的步骤来实现的。

5、定义类可以再一个包下面,也可以不在一个包下面。

类又分为已有类和自定义类。

6、成员变量和对象的引用在申明时,不对其赋值的话,系统都会赋初值。

7、局部变量和成员变量很相似。

但是局部变量在方法体中创建,方法体外是访问不到这个变量的。

8、成员变量可以被:

public,protected,default,private,staticfinal修饰,局部变量可以被final修饰,但不能被其他的修饰符修饰。

9、成员变量是在堆里创建的,局部变量是在栈里面进行创建的。

10、成员变量是系统默认的,局部变量没有系统默认值,必须手动赋值。

11、不能调用没创建的分对象或者成员变量,不能条用对象为NULL的引用。

12、报的创建注意事项:

packagea.b

Package必须在第一行,package只能有一个,不能有多个。

如果包有多层的话,就有句点.分隔。

13、import包名.类名

14、静态引用就是引入包中的静态成员变量和静态方法。

15、Final关键字修士成员变量,其值是不能改变的。

必须进行初始化。

16、Final关键字修饰方法时,和修饰成员变量,局部变量不一样。

被修饰的方法能被该类的子类所继承,但不能重写。

17、被修饰为static类型的成员变量不属于对象,它是属于类的.

18、方法的重写也叫方法的覆盖,关键之是override。

19、Java的重载,关键字是overload。

重载的名称相同,但是方法的参数列表(参数个数和参数类型)不同。

20、重载的方法的返回值可以相同也可以不同。

21、传递基本类型,是看匹配参数列表

22、方法有他的返回类型,重写也是。

重写方法后,返回要一样。

静态方法是不能重写的。

23、父类的静态方法可以被子类的静态方法覆盖。

24、父类的非晶态方法不能被子类的静态方法覆盖

25、父类的静态方法不能被子类的非晶态方法覆盖

26、覆盖是用于父类和子类之间的。

27、重写是用在统一各类中,有相同的方法名,但参数不一样

28、重写关键字是override,重载关键字是overload,重写,重载和覆盖都是基于继承关系。

29、当继承关系发生了,想用父类的方法就用super关键字引用,如果想用新的方法就重写下,来完成新的功能需求

30、重写的方法在运行期采用多态的形式.

31、Abstract关键字表示抽象的意思

32、反射机制,反射机制就是起到放大镜的效果,可以通过类名,夹在这个类,显示这个类的方法等信息

33、泛类的总结:

泛类能使代码量减少,能产生很多公共的代码;泛类在编译时进行类型的检查并自动转换,是代码的运行效率提高;泛类在编译时自动转换出现错误,会进行错误提示;使用泛类的时候参数只能是类的类型,不能是简单类型;泛类的参数可以有多个;使用泛类的时候参数也能继续别的类型。

34、重写与重载的区别:

重写是基于继承的重写是重写父类中的方法,然后在子类中出现一个与该方法相同名称的方法;重载的方法名字相同,但是方法的参数列表不相同;重载的返回值可以相同也可以不相同。

-----------------------------------------------------接口----------------------------------------------------------

35、接口就是完成某些特定功能的类。

36、接口的修饰符--interface接口名称{//成员变量和方法的申明}

37、接口里的成员变量默认为publicstaticfinal类型

38、接口不能申明为final,因为final类型必须要实现.

39、接口里创建方法和一个类的方法很相似,但是不同点是接口的方法,没有具体的方法体,而类的方法必须去实现其方法体。

40、接口的方法和类的方法的区别:

接口里的方法默认呗修饰为public,abstract类型,类里的方法如果修饰为,abstract类型,就会提示错误;类里的方法不能为final、abstract类型

41、所谓instanceof可以理解为检查实例。

Instanceof关键字不能比较基本类型的数据,可以对对象和接口使用;它的比较是基于多态的;不推荐使用instanceof,因为要多使用多态;它的右边比较类型的只能是类和接口。

---------------------------------------抽象和接口的区别--------------------------------------------------

42、抽象类中有一个或者多个抽象方法,但是接口中的方法全部被修饰为抽象方法(全被默认修为publicabstract)

43、一个类可以实现一个接口,也可以实现多个接口。

44、实现抽象类里的方法可以实现部分方法,也可以实现所有方法,但是接口的方法必须全部实现

45、接口里的变量都被修士成publicstaticfinal类也就是常亮,所以没有成员变量,它的方法全部都是public类型

-----------------------------------------构造器--------------------------------------------------------------

46、通过new关键字来条用构造器使其对象在内存中创建出来。

----了解构造器

----创建构造器

-----使用和调试构造器

-------了解构造器的基本机制

47、类的修饰符类的名称{//方法体};构造器不能写default类型的.构造器的名称必须要和类的名称相同

48、不能有返回值,void也不行。

它的参数可有可无。

49、构造器可以被修饰符修饰

50、构造器可以被修饰为public、protected、private类型,但不能修饰为abstract、final、native、static、synchronized

51、构造器的调用有两种情况:

1、在本类里调用或者在同包下的另一个类调用;2、另一种情况是子类调用父类的构造器

52、构造器的重载和方法的重载一样,但是有几点要注意下:

构造器的重载的方法是没有返回值的,构造器是不能被继承的(这是和方法有所区别的)

53、Finally语句在程序中肯定会执行,但是也有几种情况肯恩会中断finally语句执行的情况:

finally语句本身就产生异常;再者就是执行finally语句的线程死亡;还有就是执行finally语句时断电。

54、异常分类:

捕捉异常和未捕捉异常。

在java类有throwable类,所有的异常类都是继承throwable类,它有两个直接子类,error类和exception类,Exception类中又有一个RuntimeException类。

在Exception类中的直接和间接子类中除去RuntimeException类的直接和间接子类,都是捕获异常。

其他的都为未捕获异常。

55、异常有时候不需要立即处理,但是必须要处理,所以就引入了抛出异常。

如果异常处理不了,就一级一级向上抛出,知道给main方法。

异常抛出的两个关键字:

throw和throws

56、Throws语句是在方法的声明中来抛出异常,throw语句是在方法体内使用抛出异常。

57、使用两种方法从外部类外访问内部类,在外部类外访问内部类时,是不能够直接创建内部类的对象,想要创建内部类对象,首先要创建外部类对象,然后以外部类对象为表示来创建内部类对象。

58、在内部类中访问外部类,就想所有的同一个类中的成员互相访问一样,这是没有限制的,包括声明为private私有的。

59、一个内部类和外部类中具有相同名称的变量访问,要访问外部成员,首先创建一个外部对象,然后对该外部对象调用外部类成员变量.

----------------------------匿名类不类---------------------------------------------------

60、创建匿名内部类将使用到继承父类或者显示接口的知识。

61、匿名类是没有名字的,所以需要在创建匿名内部类时同时创建匿名内部类的对象

62、匿名类是没有构造器的,解决成员变量的安放位置的方案是创建一个非静态语句块,这样就可以将所有的初始化的成员变量都放在该非静态语句块中。

这样匿名类中的方法就可以调用了。

63、在局部内部类中,只能访问方法中的最终变量。

------------------------------------------------------多线程-------------------------------------------------

多线程的定义

多线程的使用

多线程的调用和生命周期,以及同步问题

64、定义一个线程可以通过继承Thread线程类来实现,在Thread类中具有一个run方法,重写run方法,在其中定义要执行的语句。

当线程启动时,run方法中的程序就成为一条独立的执行程序线程。

65、classMyRunnableimplementsRunnable

{

//定义一个run线程方法

publicvoidrun()

{

System.out.println("这是一个正确的启动线程的程序");

}

}

publicclassXianCheng4

{

publicstaticvoidmain(Stringargs[])

{

MyRunnablemr=newMyRunnable();

Threadt=newThread(mr);

t.start();//启动线程

}

}

66、Java对多线程的设计是调用start方法,然后执行run,启动线程和main方法并行执行的线程。

Start只能调用一次,多次启动线程时就会出现异常。

67、同时运行多个线程时,运行结果不唯一。

先运行哪一个线程不确定,线程间交替运行也不确定。

68、多线程的同时运行:

创建不同的Thread的对象,调用启动不同的对象的start就可以了

69、线程生命周期,分为新建,准备,运行,等待/阻塞和死亡。

70、新建状态:

当一个线程对象被创建后,线程就处于新建状态,在新建状态中的线程对象,从严格意义上说只是一个普通的对象,他还不是独立的线程,调用start方法后就会进入准备状态,从新建状态只能进入准备状态,并且不能从其他状态进行新建状态

71、处于新建状态中的线程被调用start方法就会进入准备状态。

线程从新建状态进入准备状态后是不可能再进入新建状态,在等待/阻塞状态中的线程被解除等待和阻塞后将不直接进入运行状态,而是首先进入准备状态,然后让系统选择哪一个线程进入运行状态。

72、准备状态的线程被系统选中就会获得cpu时间,进入运行状态,在运行状态中,将执行线程类run方法中的程序,在运行状态下还可以让线程进入到等待或者阻塞状态。

73、处于死亡状态的线程不能再使用start方法启动线程。

但是它还可以作为普通的类来使用。

74、当线程处于运行状态时,调用sleep睡眠方法将使线程从运行状态进入等待,阻塞状态。

从而停止运行线程,sleep睡眠方法是具有一个时间参数的,该时间是指到线程进入准备状态,等待系统的调度。

75、Sleep重载存在两种形式,publicstaticvoidsleep(longmillis)throwsInterruptedException;毫秒级

76、Publicstaticvoidsleep(longmillis,intnanos)throwsInterruptedException;纳秒级的

77、Sleep方法只是给线程一个调度的建议,是否调度成功是不能确定的。

78、Java中的优先级是采用从1到10表示,数字越大,表示优先级越高,如果没有线程设置优先级,则线程的优先级为5,这是线程的默认值,但是对于子线程来说,它的优先级是和其父线程的优先级相同的。

79、如果需要设置线程优先级时,可以通过调用setPriority方法来设置,publicfinalvoidsetPriority(inti)。

80、上面的参数i就是优先级的等级,其中:

MAX_PRIORITY,NORM_PRIORITY,MIX_PRIORITY

81、在java中具有两种线程让步方法,第一种是yield,是让出当前cpu,而将cpu让给哪一个线程时不确定的,由系统来进行选择,使用yield让步的方法的线程将从运行状态进入准备状态。

注意yield让步操作可能不成功,因为在线中使用yield方法,使该线程进入准备状态。

但是系统有可能再次选择该线程,使该线程进入运行状态。

82、Publicstaticvoidyield();

83、Yield让步方法是一个静态的方法,所以该方法也是和对象无关的。

84、第二种是Join让步方法,是将当前线程的cpu资源让步给指定的线程。

85、Join的格式:

publicfinalvoidjoin()throwsInterruptedException

86、publicfinalvoidjoin(longmills)throwsInterruptedException

87、publicfinalvoidjoin(longmillis,intnanos)throws

88、Join让步方法具有三种形式,没有参数表示指定的线程执行完成后在执行其他线程,参数表示在参数的时间内执行让步给的执行线程。

------------------------------------swing桌面程序开发------------------------------------

Swing的开发基本过程

创建窗口,面板,标签和按钮

熟练使用swing中的事件。

89、在开发swing程序中,通常是通过继承JFrame窗口类来实现窗口的。

90、JFrame有四种构造器

91、第一种是无参构造器,使用该构造器将创建一个初始不可见的新窗体,除此,第二种

是String类参数的构造器,能创建一个初始时具有标题的新窗体;还有两种需要给出图形配置参数的构造器。

92、直接使用JFrame窗口类创建窗体只能适用于创建简单的窗口需要,如果创建复杂的,就会使程序变得非常复杂难以理解。

93、设置窗体时,setResizable方法可以设置创建的窗口是否可以调整,默认是可以调整的,也就是参数值为true。

94、JFrame窗口类中海油一个setUndecorated方法,使用该方法可以将窗体的边框的标题栏去掉。

95、在JFrame窗口类中,还有一个重要的方法,setDefaultCloseOperation方法,使用该方法可以设置当单击关闭按钮关闭窗口时所执行的动作。

96、上面的动作包括:

DO_NOTHING_ON_CLOSE不执行任何动作

DISPOSE_ON_CLOSE释放窗体对象

HIDE_ON_CLOSE隐藏窗体

EXIT_ON_CLOSE退出JVM

----------------------------------JPanel面板类-------------------------------------------

97、面板可以说是控件

98、先了解下容器。

Swing中的控件可以分为三类:

顶层容器,非顶层容器和普通控件。

99、JFrame窗口类就是一个顶层容器,顶层容器是一个直接可以显示在系统桌面上的控件,其他控件必须直接或者间接的借助顶层容器进行显示。

顶层容器除了JFrame窗口类外,还包括JWindow和JDialog等不常用的类

100、JPanel面板类是一个非顶层级的容器,非顶层级容器是具有两面性。

非顶层容器是放在顶层容器中使用,对于顶层容器来说,非顶层容器是一般的控件,它还可以添加控件,对于这些控件来说,非顶层容器就是一个容器。

101、普通控件占大部分,它们不具备容器的作用,它们只能放在容器中进行显示,普通控件包括按钮,文本框等很多控件。

102、设计的基本是先定义顶级容器,然后在顶级容器中添加非顶级容器,然后将普通控件放在非顶级容器中。

这样设计的好处是重用性。

103、JPanel面板类是一个非顶层的容器,它同时具有四种构造器,无参是最常用的。

关于它的信息可以再网上搜索。

104、JLable标签类,是Swing中最基本的控件,它是一种非交互的控件,也就是不需要进行操作的控件,标签有六个构造器。

105、

106、JButton按钮类

-----------------------------------------Swing中的事件--------------------------------------------

107、事件是一种很好的让界面和用户进行交互的手段。

108、事件源就是出发时间的控件,这里包括按钮,文本框,窗体等很多控件。

109、事件监听器是指现实专门的监听接口的类的对象。

每一个事件都有对应的监听接口,同时在该接口中给出了处理事件的方法,在方法中编写出发时间后的执行程序,在编写程序时,还需要将监听器注册给事件源。

110、事件源和监听器是多对多的关系。

当为同一个事件源注册多个监听器时,监听器的执行顺序是按照先注册后坚挺的顺序来执行的。

111、Java语言类的层次非常分明,因而只支持单继承,为了实现多重继承的能力,Java用接口来实现,一个类可以实现多个接口,这种机制比多重继承具有更简单、灵活、更强的功能。

在AWT中就经常用到声明和实现多个接口。

记住无论实现了几个接口,接口中已定义的方法必须一一实现,如果对某事件不感兴趣,可以不具体实现其方法,而用空的方法体来代替。

但却必须所有方法都要写上。

112、窗体的打开,关闭和激活事件只需要实现WindowListener监听接口的监听器,

113、Implements一般实现接口,接口一般是只有方法的声明没有定义,extends是继承类,它是有方法体的,override是指伪代码,表示重写,它有两方面的好处,1当注释用,2编译器可以验证@override后面的方法名是否在父类中所有,没有就会报错。

----------------------------------布局管理器-------------------------------------------------

114、布局管理器也有很多中,包括流布局,网格布局,边框布局和空布局。

115、流布局在放在控件时,是按控件的添加顺序,依次将控件从左到右进行摆放,并且在一行的最后会自动换行放置。

控件时默认剧中放置的

116、布局管理器也是通过构造器来创建的,流布局是通过FlowLayout类来创建,FlowLayout类具有三种构造器。

一种是无参,一种是有一个参数用来指定对齐方式的,还有一种是带有三个参数,分别指定了流布局管理器的对齐方式,控件中的水平间距,流布局管理器的垂直间距。

117、设置上述带三个参数的构造器还可以通过常用的方法设置:

getAlignment方法和

setAlignment方法分别获取和设置流布局管理器的对齐方式。

getHgap方法和setHgap方法分别获取和设置流布局管理器中控件和控件之间的水平间距。

getVgap方法和setVgap方法分别获取和设置流布局管理器中控件和控件之间的垂直间距。

118、网格布局是通过GridLayout类创建的

119、边框布局是通过BorderLayout类创建的

120、空布局是不需要使用类来创建的,只需要在程序指定布局管理器为null

121、卡片布局是通过CardLayout类创建的

122、箱式布局和弹簧布局。

----------------------------------------Swing常用控件---------------------------------------------

123、文本框以及密码框和多行文本框

124、创建文本框:

文本框是通过JTextField类来创建的

125、

126、密码框是通过JPasswordField类来创建的,因为密码框和文本框的关系,所以JPasswordField类的构造器是和JTextField类的构造器相同的。

127、多行文本框也是文本框的一种特殊形式,多

128、行文本框是通过JTextArea类实现的

129、

130、复选框和单选按钮

131、单选按钮是通过使用JRadioButton类来创建的,在JRadioButton类中具有7种构造器形式,构造器如表所示:

132、

133、创建复选框,通过创建JCheckBox类,与JRadioButton的不同是,JCheckBox不需要编组使用,各个选项之间没有逻辑约束关系。

134、通过JRadioButton与ButtonGroup的配合使用,可以很方便地实现单项选择

135、

136、选项卡也是开发GUI界面常用的控件之一,主要包括JTabbedPane类,ChangeEvent事件以及具体案例等内容。

137、选项卡可以产生多个标签框架,每个标签框架窗口自成一个系统,即包含多个页面,每个页面与一个标签对应。

当选择某一个标签时,标签框架窗口就会自动显示出此标签的框架内容,并触发一个ChangeEvent事件,这个事件由ChangeListener监听器监听并处理。

138、分割窗格JSplitPane控件允许在单个空间中放置两个控件,开发人员尅自由决定按水平方向或者按垂直方向划分空间,还可以在程序的运行期间使用鼠标自由调整空间的分割比例。

通过JSplitPane控件的嵌套使用,可以将空间分割成更多的部分。

139、JSlider类是swing包中提供的用于实现滑块的控件。

滑块组建是由可以拖动的滑块和一个范围组件组成的,用户可以通过拖动滑块在一个区间范围里进行选择。

140、JSliderageSlider=newJSlider();

ageSlider=newJSlider(SwingConstants.VERTICAL,0,120,20);

141、JProgressBar是Swing中提供的用来实现进度条的控件;

142、JList类没有提供滚动功能,但是可以通过将其放置在JScrollPane中来实现滚动操作;

143、JList的常用构造方法如下所示:

•publicJList()方法:

该方法可以构造一个使用空模型的JList对象。

•publicJList(Object[]listData)方法:

该方法以显示指定数组中的元素构造一个JList。

144、菜单的组织方式为:

一个菜单条JMenuBar包含多个菜单项(JMenuItem)。

JMenuItem有两个子类,分别为JRadioButtonMenuItem及JCheckBoxMenuItem用于表示单选菜单项和复选菜单项。

当用户选择某个菜单项后,就会触发一个ActionEvent时间,由ActionListener监听器处理。

145、菜单项有两种状态,启用状态和禁用状态。

菜单的状态可以使用setEnable

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教学研究 > 教学反思汇报

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1