您好,欢迎访问三七文档
1.Jdk(JavaDevelopmentKit,Java语言的软件开发工具包)=jre(JavaRuntimeEnvironment,Java运行环境)+编译器(编译器javac.exe和解释执行器java.exe)+类库(掌握150+个)2.Java源文件编译解释执行过程3.Java程序的源文件是以.java结尾的文件,同时该文件只能有一个类被声明为public类,若存在被声明为public的类时,该公共类的名字必须与.java源文件名相同。源文件通过编译,可以产生字节码文件,以.class作为文件扩展名。类是复合数据类型,公共类名必须和文件名一致4.无论使用哪种高级程序语言,变量都是其程序基本的组成单位,java的基本数据类型的定义与c/c++中大体一致。String不是基本数据类型,而是类,类是复合数据类型。Switch中可用数据类型要与case后常量一致5.对象的声明及创建:对象声明:类名对象名;创建对象:对象名=new类名();创建及声明:类名对象名=new类名(依构造方法,可能有参数传递);对象1,对象2.对象3……是类的实例;类不占用内存,对象占用内存6.引用传递是多个对象指向同一块空间,一改全改;但创建对象之后在内存中就有该对象,如果只声明了,就可以指向。a=null释放a指向的对象7.类名首字母要大写;方法名首字母小写;新建:工程—包—类8.构造方法小结1)构造方法名字与类名相同;2)构造方法没有返回值;void3)完成对新对象的初始化;4)创建一个新对象时,自动调用完成初始化;5)一个类可以有多个构造方法;6)每个类都有一个默认的构造方法;(程序员写构造方法是为了要覆盖默认的,方便我们赋值,因为默认的构造方法里面没有内容)7)Java虚拟机给每个对象分配this,代表当前对象9.Class类名{类属性(成员变量)构造方法(必须有,完成对新对象的初始化,其中this属于对象,而不属于类;构造方法也可以创建类的对象)类方法(又叫成员方法,抽象/不抽象:被抽象的事物可以做什么)}10.成员方法的结构(方法名首字母小写)修饰符返回数据类型方法名(参数列表){语句;//方法主体}11.先设计类,然后根据类创建对象12.类变量:静态变量,可以被任何一个对象访问,也可以被类访问类方法:13.三大特征:1)封装:private留出接口eg:重载2)继承:Java的单一继承(c++多继承)子类继承父类3)多态:一个对象在不同情况下的多种状态eg:覆盖Java允许父类的引用变量用于它的子类的实例Animalanimal=newCat();//Cat这个子类继承了Animal这个父类10.访问控制符访问级别访问控制符同类同包子类不同包公开Public√√√√受保护protected√√√×默认无/default√√××私有private√×××Public>protect>default>private成员方法也有访问修饰符11.方法重载:(同一个类中同名方法)方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。调用重载方法时,Java编译器能通过检查调用的方法的参数类型和个数选择一个恰当的方法重载规范:一.方法名一定要相同。二.方法的参数表必须不同,包括参数的类型或个数,以此区分不同的方法体。1.如果参数个数不同,就不管它的参数类型了!2.如果参数个数相同,那么参数的类型或者参数的顺序必须不同。三.方法的返回类型、修饰符可以相同,也可不同。方法覆盖:(不同类中的同名方法)override在子类中把父类的成员方法重新定义,调用时覆盖父类的成员方法;子类不能缩小父类范围12.同一包内不可有相同类名参数传递:基本类型参数;对象引用型参数(方法中获得该对象的内存地址)13.父类的实体多态性通过作为子类不同情况下体现14.抽象类、抽象方法的定义:用abstract关键字修饰一个类时,这个类就叫抽象类用abstract修饰一个方法时,这个方法就是抽象方法。注意事项:1)抽象类不能被实例化2)抽象类可以不包含abstract方法3)一旦类包含了abstract方法,则这个类必须声明为abstract。4)抽象类只能在子类中实现方法5)抽象方法不可有主体15.a)一个重要原则:当一个类实现了一个接口,就要求该类把这个接口的所有方法通通实现;b)接口的方法都不可以实例化c)接口名都是静态的static全局的,不可以用private修饰接口名.变量名d)将常用的变量定义在接口中e)一个接口不能继承类,但可以继承别的接口f)接口的所有方法都无方法体g)一个类可以实现多个接口小结:接口是更加抽象的抽象类,抽象类里的方法可以有方法体,接口里的所有方法都没有方法体。16.final修饰符的使用方法:1)在方法前用final修饰,表示不可被修改,不可被覆盖2)类不想被继承,也可以前加final17.工程-包-类18.数组:1)对象数组的使用,注意初始化赋值2)比较字符串用equal,不用==3)数组的传递是引用传递19.importjava.util.*:引入java.util下所有的类包含集合框架、遗留的collection类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组、日期Date类、堆栈Stack类、向量Vector类等)。集合类、时间处理模式、日期时间工具等各类常用工具包注意:引包命令放在package后面20.集合框架集合是一个类,引用其他对象的类,员工管理系统常用五类及各优势区别:LinkedlistVector:同步安全服务器Arraylist:异步不安全单机Hashmap:异步单进程访问安全可以放入空值null,nullHashtable:同步多进程同时访问不安全不能放入空值总结:1)要求线程安全,用vector,hashtable2)不要求线程安全,用arraylistlinkedlisthashmap3)要求键值用hashmaphashtable4)数据量大用vector21.反射机制可以拿到类的方法名22.泛型23.异常Trycatch……finally-----------------------------------------------------------------------------24.Gettersandsetters的使用是面向对象的思想,成员变量是private,setget方法是public,减少耦合25.涉及到Java各个方面的技术1)Java面向对象编程2)界面编程3)绘图技术4)多线程5)文件i/o操作6)数据库26.像素是一个密度单位27.SwingAWTGUI的开发Importjava.awt.*Importjava.swing.*Importjavax.swing.*Jframe是顶层的容器类,JPanel:面板组件,非顶层容器一个界面只可以有一个Jframe窗体组件,但可以有多个JPanel面板组件,而JPanel上也可以使用flowlayout,borderlayout,girdlayout等各种布局管理器,这样可以组合使用达到较为复杂的布局效果。Jpanel布局默认为flowlayout28.开发GUI程序的步骤:1)公共类继承JFrame2)定义(声明)所需组件JButtonjb1=null;3)创建组件/设置布局管理器(构造函数)jb1=newJButton(“南部”)4)添加组件this.add(jb2,BorderLayout.North)5)设置窗体属性并显示窗体this.setsize(200,150);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setvisible(true);29.边界流式this.setLayout(newFlowLayout())网式this.setLayout(newGridLayout(introw,intcolumn))30.内部类:定义在其他类内部的类(编写事件驱动程序)31.绘图技术:Graphics类理解为画笔,提供了各种绘图方法32.Super关键字的使用:要在子类中直接调用父类的构造方法,就必须使用super(…)语句,注意以下两点:1)子类构造方法中第一行中写super(…)2)不能同时调用this.和super.,因为这两条语句必须位于子类构造方法第一行。33.一个包可以含有任意数量的类,这些类的用途相关或继承的。如果程序很小,用的类不多,就没必要使用包。但使用包可以减少名称冲突34.事件处理机制用户操作——34.swing编程三大部分:(1)组件和布局管理器(2)绘图和坐标(3)事件处理机制35.java事件处理机制采用的是“委派事件模型”,所谓“委派事件模型”是指当事件发生时,产生事件的对象(即事件源),会把“信息”传给事件的“监听者”处理的一种方式,而这里所说的信息指的是java.awt.event事件类库里某个类所创建的对象,我们暂时把它称为“事件”。36.总结:(1)Java采用委托机制处理事件(2)Java中的事件是分类的,比如对窗体事件、鼠标事件、按键事件、操作事件【按下按键】(3)Java中一个类要监听某个时间,则必须实现相应的事件监听接口(4)事件监听接口有多种,针对不同情况实现不同的监听接口(5)在实现监听接口的类中,需要重写处理函数(6)在事件源中需要注册事件监听类一个类要实现监听的步骤(1)实现相应的接口(KeyListener,MouseListener,ActionListener,WindowListener)(2)把接口的处理方法根据需要重新编写(override)PublicvoidactionPerformed(ActionEventarg0)(3)在事件源注册监听(也需要分类)(4)事件传递是靠事件对象ActionEventarg0事件编程步骤(1)编写事件处理类(事件监听者)(2)根据需求给事件处理类实现监听器接口(3)在事件处理类中重写(实现)其事件处理函数(4)在事件源类中指定该事件的监听器(响应者)是谁,即注册监听37.一个事件源可以被多个事件监听,一个普通类也可以实现监听Importjava.awt.event.*38.注册监听jb2.addActionListener(this);//构造方法里写注册监听,事件源是jb2(实例),监听者是this(实例)jb2.setActionCommand(“aa”);jb1.addActionListener(this);//构造方法里写注册监听jb1.setActionCommand(“bb”);39.任何一个类,只要他实现了相应的接口,就可以去监听某个事件源ClassCatimplementsActionListener{publicvoidactionPerformed(ActionEventarg0){…………}}40.事件处理机制小结:(1)事件源:事件源是一个产生或触发事件的对象,当这个事件源对象的某些状态以某种方式发生变化时,就会产生某种类型的事件(一个事件源可能产生多个不同类型的事件)。如果某个组件(对象)希望得到事件源产生的事件,需要在这个事件源上注册。(2)事件:事件就是承载事件源状态改变时的信息对象。或者说,事件是事件源向事件监听器传输事件源状态信息的载体。在用户与GUI组件进行交互时就会生成事件,比如当鼠标在面板中移动时,就会生成一个鼠标移动事件的对象,而这个对象保存着当前鼠标在面板中位置信息。Java.awt.event包和javax.swing.event包中定义了各种事件类型。(3)事件监听器接口:事件监听者实际上就是一个类,该类实现了某个事件监听器接口,就可以对接收到的事件进行处理。事件监听器接口有多种,不同事件监听接口可以监听不同事件,一个类可以实现一个事件监听接口,也可以实现多个监听接口。Keytyped和keypressed区
本文标题:JAVA学习笔记2
链接地址:https://www.777doc.com/doc-1915282 .html