课程总结
作者:互联网
我也不拐弯抹角了,直接说了。对于java接触了一个学期了,应该算刚刚入门吧,学而时习之,不亦乐乎,学而不思则罔,思而不学则殆,学无止境,来吧!这里只总结一些比较实用及重点内容。
1:基本数据类型
java语言有8种基本数据类型:byte(占1个字节),short(占2个字节),int(占4个字节),long(占8个字节),float(占4个字节),double(占8个字节),char(占2个字节),boolean(占1个字节)。
2:运算符优先级:
逻辑与&& 优先级 大于 逻辑或||
按位与& 优先级 大于 按位或|
类和对象
类:对现实生活中事物的描述
对象:就是这类事物中实实在在的个体,java中一切都是对象,具体对象是java在堆内存中用new建立的实体
权限修饰符
一个.java文件中只能有一个public类
static: 用于修饰成员(成员变量和成员方法),当成员被static修饰后,该成员可被类名直接调用,类名.静态成员
static修饰后的特点:
随着类的加载而加载,优先于对象存在,被所有对象共享,可以被类名直接调用。
静态方法只能访问静态成员,其方法中不能定义super,this关键字,因为静态优先于对象存在,主函数是静态的
静态优点:把对象的共享数据单独存储,节省空间,可被类名直接调用。缺点:生命周期过长,访问出现局限(只能访问静态)。
this关键字:代表本类对象,哪个对象调用this所在的函数,this就代表哪个对象
构造函数
一个类中默认会有一个空参数的构造函数,其权限和所属类的权限一致
作用是给对象进行初始化,对象一建立就会调用与之对应的构造函数。
特性
封装:隐藏对象属性和实现细节,仅对外提供公共访问方式,提高复用性和安全性
继承:必须类与类间有关系才能继承,提高代码复用性,java只支持单继承,但是可以有多层继承,但是可以用实现来弥补
子类为什么一定要访问父类的构造函数呢:因为父类中的数据,子类是可以直接获取的,所以子类对象在建立的时候,需要先查看父类是如何对这些数据进行初始化的,如果要指定父类中指定的构造函数,可以手动定义super语句来实现。
多态:某一类事物的多种存在形态
多态的实现:父类的引用指向了自己的子类对象(向上转型)
多态的前提:类与类之间有关系,继承或实现,通常还存在覆盖
(像多窗口售票问题就是多态问题)
抽象类
抽象方法一定在抽象类中
抽象方法和抽象类必须被关键字abstract修饰
抽象类不能用new创建对象,不能实例化,因为没意义,方法没内容
抽象类中的抽象方法要被使用,必须由子类重写所有的抽象方法后,建立子类对象调用
接口
接口是对外暴露的规则,是程序的功能扩展,接口可以用来多实现,类与接口是实现关系,类可以继承一个类的同时实现多个接口,接口与接口间可有继承关系。
接口是特殊的抽象类,接口成员有固定修饰符,常量:public static final 方法:public abstract
接口不能创建对象,被子类实现后,子类需重写接口中所有抽象方法,这样子类才能实例化,否则子类还是一个抽象类。
重写与重载
重写:是对父类方法的重写,子父类方法要一模一样
重载:同名函数的参数列表不同
异常处理机制
java的异常处理,可以运用try,catch,finally语句来处理,但还可以将其抛出,不管怎么样都是要进行处理的,但不能抛到main方法进行处理。
throws和throw区别:
throws使用在函数上,throw使用在函数内
throws后面跟异常类名,可以跟多个,逗号隔开,throw后跟异常对象。
java IO
在这其中有字符流与字节流,但一般可以把字符流换成字节流来写,反之不可以吧。
java 图形界面设置
1.在这个学习中,掌握了组件,容器(基本容器Frame),布局管理器的基本用法(组件要放入容器中,但容器也有自己默认的布局管理器),加入自己喜欢的东西在机界面上,比如修改文字的样式,图片,按钮等等,然后还有很多需要利用的布局管理器(FlowLayout,BorderLayout,GildLayout,CardLayout,绝对定位),还有其他容器(JPanel,JSplitPane,JTabbedPane,JScrollPane,JDesktopPane与JInternalFrame),之后会进行事件的处理,就是让它能用,比如有键盘监听器,鼠标监听器,如果只想利用其中部分功能有适配器。
2.对于最后学习的记事本里面有JMemu,JMenuBar,JMenuItem这三种组件就是我们常见的菜单,让我一步步完成了简单的记事本。
掌握了他们的用法在加上前面的图形界面的运行,一步步也算完成了。
package 单选钮;
import java.awt.*;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.print.PageFormat;
import java.awt.print.PrinterJob;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class demo03 implements ActionListener {
JFrame frame;
JMenuBar bar;
JMenu fileMenu,editMenu,formatMenu,searchMenu,helpMenu;
JMenuItem newItem,openItem,saveItem,closeItem,pageItem,printItem;
JMenuItem withdrawItem,shearItem,copyItem,stickItem,delateItem,seekItem,seeknextItem,replaceItem,turnItem,checkallItem,timeItem;
JScrollPane scroll;
JTextArea area;
JFileChooser chooser;
File file;
public demo03() {
frame=new JFrame("记事本");
bar=new JMenuBar();
fileMenu=new JMenu("文件");
editMenu=new JMenu("编辑");
formatMenu=new JMenu("格式");
searchMenu=new JMenu("查找");
helpMenu=new JMenu("帮助");
newItem=new JMenuItem("新建(N)");
openItem=new JMenuItem("打开(O)");
saveItem=new JMenuItem("另存为(A)");
pageItem=new JMenuItem("页面设置(U)");
printItem=new JMenuItem("打印(P)");
closeItem=new JMenuItem("关闭(X)");
withdrawItem=new JMenuItem("撤回(U)");
shearItem=new JMenuItem("剪切(T)");
copyItem=new JMenuItem("复制(C)");
stickItem=new JMenuItem("粘贴(P)");
delateItem=new JMenuItem("删除(L))");
seekItem=new JMenuItem("查找(F)");
seeknextItem=new JMenuItem("查找下一个(N)");
replaceItem=new JMenuItem("替换(R)");
turnItem=new JMenuItem("转到(G)");
checkallItem=new JMenuItem("全选(A)");
timeItem=new JMenuItem("时间(D)");
area=new JTextArea();
scroll=new JScrollPane(area);
newItem.addActionListener(this);
openItem.addActionListener(this);
saveItem.addActionListener(this);
closeItem.addActionListener(this);
pageItem.addActionListener(this);
printItem.addActionListener(this);
fileMenu.add(newItem);
fileMenu.addSeparator();
fileMenu.add(openItem);
fileMenu.addSeparator();
fileMenu.add(saveItem);
fileMenu.addSeparator();
fileMenu.add(pageItem);
fileMenu.addSeparator();
fileMenu.add(printItem);
fileMenu.addSeparator();
fileMenu.add(closeItem);
editMenu.add(withdrawItem);
editMenu.addSeparator();
editMenu.add(shearItem);
editMenu.addSeparator();
editMenu.add(copyItem);
editMenu.addSeparator();
editMenu.add(stickItem);
editMenu.addSeparator();
editMenu.add(delateItem);
editMenu.addSeparator();
editMenu.add(seekItem);
editMenu.addSeparator();
editMenu.add(seeknextItem);
editMenu.addSeparator();
editMenu.add(replaceItem);
editMenu.addSeparator();
editMenu.add(turnItem);
editMenu.addSeparator();
editMenu.add(checkallItem);
editMenu.addSeparator();
editMenu.add(timeItem);
newItem.setMnemonic(KeyEvent.VK_N);
newItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,java.awt.Event.CTRL_MASK));
openItem.setMnemonic(KeyEvent.VK_O);
openItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,java.awt.Event.CTRL_MASK));
saveItem.setMnemonic(KeyEvent.VK_A);
saveItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,java.awt.Event.CTRL_MASK));
closeItem.setMnemonic(KeyEvent.VK_X);
closeItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,java.awt.Event.CTRL_MASK));
pageItem.setMnemonic(KeyEvent.VK_U);
pageItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_U,java.awt.Event.CTRL_MASK));
printItem.setMnemonic(KeyEvent.VK_P);
printItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,java.awt.Event.CTRL_MASK));
frame.setJMenuBar(bar);
frame.add(scroll);
frame.setSize(750,500);
frame.setVisible(true);
bar.add(fileMenu);
bar.add(editMenu);
bar.add(formatMenu);
bar.add(searchMenu);
bar.add(helpMenu);
}
@Override
public void actionPerformed(ActionEvent event) {
Object obj=event.getSource();
if(obj instanceof JMenuItem) {
JMenuItem item=(JMenuItem)obj;
if(item==newItem)
{
new demo03();
}else if(item==openItem) {
chooser=new JFileChooser();
chooser.showOpenDialog(null);
file=chooser.getSelectedFile();
try {
FileInputStream fis=new FileInputStream(file);
try {
byte[] b=new byte[fis.available()];
fis.read(b);
area.append(new String(b));
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}else if(item==saveItem) {
chooser=new JFileChooser();
chooser.showOpenDialog(null);
file=chooser.getSelectedFile();
try {
if(!file.exists()) {
file.createNewFile();
}
FileOutputStream fos=new FileOutputStream(file);
byte[] b=area.getText().getBytes();
fos.write(b);
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}else if(item==pageItem)
{
PageFormat pf = new PageFormat();
PrinterJob.getPrinterJob().pageDialog(pf);
}
else if(item==printItem) {
Print();
}
else if(item==closeItem) {
System.exit(1);
}
}
}
private void Print() {
// TODO Auto-generated method stub
}
最后还是感谢老师的细心指导,在课堂上也会清晰地讲解每一步,而且代码都是一个一个打上去,直接实践,让我们慢慢消化,我就是很欣赏这种老师,我知道这样会说老师走到哪我就学到哪里,根本不会扩展,但你要知道你现在处于初学状态,也没有像别人那样“代码王子”。总的来说我学的东西很多(总结也不知道对不对,也知道不完全),最后还是要慢慢品尝。虽然这个学期过去了,但我们的路不可望也不可得,慢慢来,加油,believe in myself!!!!!
标签:总结,editMenu,java,addSeparator,add,课程,JMenuItem,new 来源: https://www.cnblogs.com/chenxinxin/p/12012523.html