总结:做项目无非就是创建对象来调用方法,我们所做的事都是这样同一件事情
swing组建的运用
1. 有些地方我们需要在创建对象的时候就引入,我们就可以先重载此类的构造函数,引入参数就可以了,创建对象的时候直接调用;这样可以减少我们的代码量;一般方法名首字母不大写,类名首字母一定要大写;
2. this:在一个方法里面,this是指这个的意思,哪个对象调用这个方法,那this代表的就是这个对象;
3. 只有构造函数没有返回类型,其它的所有函数都必须有返回类型;如果有返回值的话就写返回值的类型,没有就写void;
构造函数和继承
1. 如果一个方法中要返回值或字符串,return后面不需要加“=”或(),只需要直接写要返回的东西;
2. 如果子类重写了父类的方法,如果在子类调用这个方法则调用的是子类的方法(就近原则);
3. 调用父类方法的写法:super.方法名(参数);
4. 获得对象名字或年龄的get、set方法;
继承中构造函数调用
1. 如果有继承,在子类中重载构造函数,如果调用super(),则为调用父类的构造方法
2. 在静态方法里面,可以不需要创建对象来调用静态方法,可以直接调用(直接用类名来点某个静态方法即可);但是在静态方法里要调用非静态的方法的话就必须要先创建对象,才能调用(需要先创建对象,并用对象名来调用方法);
3. 在主函数中必须要用对象来调用方法,而在其它函数中要调用方法,直接如下写:方法名();
4. 1)static 静态方法调用静态方法,不需要创建对象;非静态方法调用非静态方法,一定要先创建创建对象,然后用创建的对象来调用非静态方法
static属性又称之为类属性,可以不创建类的对象而直接调用,另外一个特征就是类的某一对象的static属性值被改变后,这个类所有对象的static属性值都会被改变
2)final意为最终的,放在属性前面,属性的值就是常量,即这个属性就不能改变。 如果放在方法前面,当子类继承时候,就不可以重写此方法,这常用来保护父类中不允许子类重写,但又一定要标识为public让外部调用;
“=”和equal的区别
”=”是地址空间的比较
Equal是两个值的比较
在java中数据类型分为两大类:一类是基本数据类型,另一类是引用数据类型
1)基本数据类型又分为8种分别是:四种整数类型(byte、short、int、long),两种浮点数类型(float、double),一种字符类型(char),一种布尔类型(boolean)
2)引用数据类型也就是我们常说的类了,在java中String也是一种引用类
使用==比较可以分成两种情况:
1) 当等号左右都是基本数据类型时,那就是值的比较
2) 当等号左右不是基本数据类型时,那就是地址的比较
equals方法来说:
equals是一个方法,那使用方法的只能是对象的实例,所以equals比较的是对象的值是否相等,注意,对象和对象的值是两个不同的概念,
1)Primitive1 (基本类型)= = Primitive2(基本类型);
2)Object Reference1(对象引用)= = Object Reference2(对象引用)
3)Object Reference1 (对象引用) .equals(Object Reference2 (对象引用))
匿名内部类
接口
1. 接口:修饰符是interface
2. 抽象方法:没有方法体的方法,即没有具体实现的方法,也即没有一对大括号的方法
3. 接口中的方法都是抽象方法,属性一般为常量,接口不能直接实例化
4. 特点:一个类实现一个接口,必须实现接口中所有的抽象方法
5. 实现接口:关键字是implements
6. 抽象类:是一个比类更抽象的类 修饰符是:abstract class,抽象类也不能直接实例化
抽象类中可以有抽象方法,也可以有已实现的方法
类之间的对象传递
1. 可以通过重载构造函数来,并在另一个类中创建对象的时候来进行类间传递;
2. 创建事件监听,把监听类提出来格外写的方法;
数组的基础知识
1. 定义数组的三种方法:int[] array = new int[10];
int[] array = new int[]{10,4,5,6,2};
int[] array ={10,4,5,6,2};
2. 数组的输出一定要遍历,不能直接像输出变量一样输出数组;
3. 如果是输出的数组中元素为字符串的话,要重写toString()方法;color=blue]
计算器的设计[/color]
1. 字符串的分割方法:字符串名.split(分割的符号)
2. 字符串的截取:字符串名.subString(开始的位置,结束的位置)
五子棋的制作
1. 在人机和人人按钮交换的时候,有一个问题:在监听器里获取command值的时候无法把e.getActionCommand获取的command值传入ChessListener类中去,因为我们在创建监听对象时总共只创建了一次,这样,我们传过去的也就是只有最初的command,而后面所get的command值就没有通过创建对象来传过去;我们有下面三种方法来解决:
1) 定义的方式:public static String command=”人机”
在定义command时候,定义为static,同时改为public;这样定义的command会根据我们在new一个ActionListener中get的command改变,我就不需要在创建监听对象时候传command值,而直接在ChessListener类中的mouseRelease()方法中调用属性即可传值过来;
2) 定义的方式:public String command=”人机”
把定义的command改为public公有;同时在创建对象的时候把FiveChessUI类传过去,然后在ChessListener中直接用传过去的类名来调用公有command属性即可传值过去;
3) 定义的方式:private String command=”人机”
Command为私有,且非静态;我们只要定义一个方法就能getCommand()方法,同时在创建对象的时候把FiveChessUI类传过去,然后在在ChessListener类中的mouseRelease()方法中用FiveChessUI.getCommand();
递归算法
public int jiecheng(int n){
int b = 0;
if(n>1){
b = n*jiecheng(n-1);
}
else{
b = 1;
}
return b;
}
b = n*jiecheng(n-1)这句我们可以看成是b*b*b*b...直到n-1个b相乘!我们很容易把后面递归的b = n*jiecheng(n-1)看成一个赋值过程,确实也是赋值过程,但是赋值是有点特殊的:他是在这一次递归获得的内容赋给此次的b,而又把此次的b与调用这次方法的前一次递归中的b相乘;
也就是说我们最后return的b是前面所有递归相乘后获得的b;我们很容易把递归简单看成一次调用,而误以为b就是最后一次调用函数时候获得的b的值;这点一定要注意!
数据输入输出流
1. 在inputStream输入流的类里,有read方法,作用主要都是从输入流中读取字节,总共有三种:
read(),read(byte[] b),read(byte[] b,int off,int len);
1) read():读取下一个字节,并用一个变量来存储;
2) read(byte[] b):一个一个元素读取字节,并把读取的字节放入到byte[]数组中去,注意这个read方法的返回值为整形,返回的是总共读取的字节数;
3) read(byte[] b;int off,int len):将输入流中最多len个数据字节读入byte数组中,但读取的字节也可能小于该值;其中off为数组b中将写入数据的初始偏移量;返回值为整形,代表读取的字节总数;
如果要读取和写入的字节较多,数据大,可以采用第三种方法,先定义个数组,通过数组来传递数据,多次传递便可提高效率;
2. outpubString相应的也有三种谢的方法:
write(byte[] b)=write(b,0,b.length)
write(byte[] b,int off,int len)
write(int b);
文件搜索器的项目
菜单栏的添加,内置窗口的添加
1. 添加内置窗口时候,一定要先创建JDesktopPane对象来放置内置窗体(创建内置窗体对象JInternalFrame,并用add方法把内置窗体对象加入到JDesktopPane中),并在窗口创建的方法中,用窗口调用setContentPane()方法来添加JDesktopPane对象;
2. Table和JTableModel的使用(衣服和模特的关系);
3. 集合框架部分还需要巩固;
用户表的设置
1. JTable、TableModel:分别属于的包为:javax.swing.JTable
Javax.swing.table.TableModel
先把TableModel接口实现后,用JTable封装好实现类就行了;JTable和TableModel两者关系就像是衣服和模特的关系,先实现一个模特(TableModel)类,然后用衣服(JTable)来给她包装好即可;
2.给窗体加入表格时候,注意要设定窗体的布局管理器,而窗体默认的布局管理器是ViewportLayout管理器;
JTree的应用
1. 在创建树的时候,也要先创建一个模型,然后创建根结点,把根结点加到模型上去,再把模型加到树上;不能直接就把根结点放入树上;这和创建table是一样的方法;
2. 总结创建JTree的步骤:
1)创建树的对象:JTree 2)创建根结点:DefaultMutableTreeNode 3)创建根节点的子节点,用for循环创建多个:DefaultMutableTreeNode 4)把子节点加入到根节点上,记住实在循环里面加:add 5)创建树的model,把根节点加入到Model上去:创建model对象时候直接传进去 6)把模型加入到树的对象上去:setModel 6)最后才把树加到窗体上;
3.总结创建JTable的步骤:
1)另写一类,实现TableModel接口,并把接口里面的方法都实现 2)在主窗口里面创建TableModel的对象 3)在主窗口的方法里面,创建JTable对象;4)把TableModel对象加入到表格对象里面去:setModel 5)把表格对象加加入到窗体上
4.总结创建菜单栏JMenu的方法
1)先创建JMenuBar对象;2)再创建JMenu对象;3)再创建JMenuItem对象;4)用add分别把JMenu加到JMenuBar上面,用add把JMenuItem加入到JMenu上面;5)用setJMenuBar方法把JMenuBar加入到窗体上;
5.总结创建右键菜单JPopupMenu的步骤
1)先创建JPopupMenu对象;2)再创建JMenuItem对象;3)用add方法把JMenuItem加入到JPopupMenu上去;3)用setComponentPopupMenu方法把JPopupMenu加入到需要加右键弹出菜单的组件上;
注意:在创建JTree和JTable的时候,窗体setVisible一定要放在最后面;不然显示不出来;
Set list Map集合框架的总结
1.
Set:
他装载元素是没有规律的,1)在set里面的元素没有任何顺序;2)允许有一个为null的元素;3)不允许有重复的元素;
4)继承了超类collection;
List:1)list装载的东西是有顺序的,对每个插入的元素位置精确控制;2)允许有重复的元素;3)如果列表允许有null,List可以有多个null;4)继承了超类collection
Map:1)一个映射不能包括重复的键,而且同一个键只能映射一个值value;2)提供的是一种key-value的映射;
2. set:1)添加元素用addpublic java.util.Collection getUserSet(int count){
Set sSet = new java.util.HashSet();
for(int i=0;i<count;i++){
Student ui = new Student("用户_"+((char)(65+i)),i+1);
sSet.add(ui);
}
return sSet;
}
2) 去除元素,也就是遍历元素:要用到迭代器iterator;返回的是一个iterator的对象,通过这个对象我们用while来判断,判断这个迭代器里面是否还有下一个元素(用的方法是hasNext()),如果还有就取出这个元素(用的方法是next());java.util.Collection sSet = test.getUserSet(3);
System.out.println("集合中共有元素"+sSet.size());
java.util.Iterator<Student> it = sSet.iterator();
while(it.hasNext()){
Student st = it.next();
st.showInfo();
}
3.List:1)添加元素用add();
2)取出元素取出元素我们用for循环遍历整个集合,就和遍历数组一样;
public void printList(List<Student> list){
for(int i = 0;i<list.size();i++){
//我们已经知道List中放的是UserInfo对象
Student us = list.get(i);
us.showInfo();
}
}
4.Map:1)map是成对存放的,一个键,一个值;我们给map添加元素的时候使用put(k,v)方法,是成对存放的;一定要注意里面的键值是不能相同的,如果相同添加进去是会覆盖的;
Map<String,Student> userMap = new java.util.HashMap();
for(int i=0;i<6;i++){
Student us = new Student("我是第"+(i+1)+"个",i);
userMap.put(""+i, us);
}
2)在map里面其实我们需要的只是value值,键值只是我们的一个索引,磅值我们取出相应的value;我们取值的方法是用get(Key)的方法来取值,这个方法返回的是一个value;
5.一定要注意:map,list, set三中集合都是接口,不能实例化,必须通过他们的实现类;我们有必要知道他们分别的一些实现类;
分享到:
相关推荐
根据提供的文件信息,我们可以从中提炼出关于Java编程语言的一些基础知识点。下面将对这些知识点进行详细的解释和扩展。 ### Java入门知识点概览 #### 1. Java简介与环境配置 - **Java** 是一种广泛使用的面向对象...
总之,这份【中信java培训资料------第一部分】为初学者提供了一个全面且系统的Java学习路径,通过这些文档和笔记,学习者可以逐步掌握Java编程的基础知识,为进一步深入学习和实践奠定坚实的基础。
从入门到精通--------java笔记完整版》是一部全面深入学习Java编程语言的教程,由知名IT教育专家韩顺平精心编撰。这部笔记旨在帮助初学者逐步掌握Java的核心概念和技术,同时也适合有一定基础的开发者进行深入学习和...
### Java基础知识概述 根据提供的文件信息,我们可以提炼出关于Java编程语言的一些关键知识点。下面将对这些知识点进行详细的解释和扩展。 ### 1. Java IO与JDBC **Java IO (Input/Output)**:Java IO 包含了处理...
根据提供的文件信息,我们可以从中提炼出以下关于Java的相关知识点: ### Java个人笔记概览 ...这些知识点对于初学者来说是非常宝贵的参考资料,能够帮助他们更快地掌握Java的基础知识并进行实践。
"Java笔记从入门到精通"是一份全面的教程,旨在帮助初学者掌握Java编程的基础,并逐步提升为专家。以下是从这份资料中提炼出的一些关键知识点: 1. **JDK(Java Development Kit)**:JDK是Java开发的核心,包含了...
这些笔记不仅涵盖了Java的基础知识,还深入到高级概念,旨在帮助学习者系统地理解和掌握Java编程语言。 首先,学习笔记的经典版(437页)可能包括了从Java环境配置、基本语法、数据类型、运算符、控制结构、类与...
【疯狂Java讲义笔记】是针对《疯狂JAVE讲义》这本书的知识点提炼,适合用于复习Java编程。书中涵盖了Java的基础概念、面向对象的理解、数据类型和运算符以及数组等核心内容。 一、Java概述 Java程序在编译后产生与...
### Java基础知识 #### 1. Java的历史和发展 - **Java之父**: James Gosling (Golsling可能是笔误) - **Java的诞生**: 1995年5月23日 - **Java 1.2版本**: 1998年12月发布,分为三个平台: - J2SE (Java 2 ...
### Java基础知识与框架 #### Core Java 这是Java编程的基础部分,涵盖了Java语言的核心概念和技术,包括但不限于数据类型、控制结构、面向对象编程、异常处理、集合框架、多线程、输入/输出流等。 #### OOAD...
1. **Java基础知识与入门** - 环境配置:包括设置PATH与CLASSPATH。 - Console互动:掌握基本的输入输出操作。 - 第一个Java程序示例。 2. **基础语法** - 资料型态与变数常数。 - 运算符:算术、比较、条件、...
从给定的文件信息中,我们可以提炼出一系列关于Java编程语言的重要知识点,这些知识点涵盖了学习策略、控制流、格式化输出、数据类型处理以及数组初始化等方面。以下是对这些知识点的详细解析: ### 学习策略:...
总的来说,这份"Java笔记图解11"资料涵盖了从基础到进阶的Java编程知识,从集合框架到框架使用,再到Map接口的深入学习,以及个人学习心得和核心技术的详细研究。通过这些内容的学习,可以系统提升Java编程技能,为...
根据提供的标题和描述“Java语言程序设计(一)串讲笔记(最新版)”,我们可以提炼出这份资料的主要目的是为了帮助自学者更好地理解和掌握Java编程的基础知识。虽然给出的部分内容主要涉及了一个在线社区(自考乐园...
以上只是文档的部分内容概述,实际的CoreJava笔记会更深入地探讨类的创建与继承、封装、多态、异常处理、集合框架、IO流、网络编程、线程并发等主题。学习Java编程,不仅需要掌握这些基础知识,还需要通过实践项目来...
### Java基础知识与学习路径 #### 学习目标与方法 - **目标概述:** 对于Java初学者来说,掌握基础概念至关重要,它不仅是后续深入学习的前提,也是成为一名合格Java开发者的基石。 - **学习路径建议:** - 从Java...
"郝彬java基础笔记"可能涵盖了许多初级Java程序员需要掌握的核心概念。以下是根据提供的信息提炼出的一些关键知识点: 1. **构造函数**:构造函数是用于初始化新创建对象的特殊方法,它的名称与类名相同,没有...
从给定的文件信息中,我们可以提炼出一系列与Java编程语言相关的知识点,涵盖Java基础知识、图形用户界面(GUI)、Swing、多线程等主题。下面将详细展开这些知识点: ### Java基础知识 #### Java虚拟机(JVM) ...
以下是一些从提供的信息中提炼出的重要Java知识点: 1. **浮点型精度**:Java中的浮点型包括`float`和`double`。示例中提到的`float f=3.4`是错误的,因为3.4是一个双精度浮点数(`double`),应该写为`float f=3.4...