保留字:其实就是还没有赋予特殊含义,但是准备日后要使用过的单词。
注意:
1),数字不可以开头。
2),不可以使用关键字。
作用:方便于运算。因为有些数据不确定。所以确定该数据的名词和存储空间。
特点:变量空间可以重复使用。
什么时候定义变量?只要是数据不确定的时候,就定义变量。
1.这个空间要存储什么数据?数据类型。
2.这个空间叫什么名字啊?变量名称。
3.这个空间的第一次的数据是什么? 变量的初始化值。
1):基本数据类型:byte、short、int、long、float、double、char、boolean
2):引用数据类型: 数组、类、接口。
级别从低到高为:byte,char,short(这三个平级)-->int-->float-->long-->double
自动类型转换:从低级别到高级别,系统自动转的;
强制类型转换:什么情况下使用?把一个高级别的数赋给一个别该数的级别低的变量;
1.算术运算符。
+ - * / % %:任何整数模2不是0就是1,所以只要改变被模数就可以实现开关运算。
+:连接符。
++,--
2.赋值运算符。
= += -= *= /= %=
3.比较运算符。
特点:该运算符的特点是:运算完的结果,要么是true,要么是false。
4.逻辑运算符。
& | ^ ! && ||
逻辑运算符除了 ! 外都是用于连接两个boolean类型表达式。
&: 只有两边都为true结果是true。否则就是false。
|:只要两边都为false结果是false,否则就是true
^:异或:和或有点不一样。
两边结果一样,就为false。
两边结果不一样,就为true.
& 和 &&区别: & :无论左边结果是什么,右边都参与运算。
&&:短路与,如果左边为false,那么右边不参数与运算。
| 和|| 区别:|:两边都运算。
||:短路或,如果左边为true,那么右边不参与运算。
5.位运算符:用于操作二进制位的运算符。
& | ^
<< >> >>>(无符号右移)
If switch do while while for
这些语句什么时候用?
1)、当判断固定个数的值的时候,可以使用if,也可以使用switch。
但是建议使用switch,效率相对较高。
case 值:要执行的语句;break;
default:要执行的语句;
}
工作原理:用小括号中的变量的值依次和case后面的值进行对比,和哪个case后面的值相同了
就执行哪个case后面的语句,如果没有相同的则执行default后面的语句;
细节:1.break是可以省略的,如果省略了就一直执行到遇到break为止;
2.switch 后面的小括号中的变量应该是byte,char,short,int四种类型中的一种;
3.default可以写在switch结构中的任意位置;如果将default语句放在了第一行,则不管expression与case中的value是否匹配,程序会从default开始执行直到第一个break出现。
当判断数据范围,获取判断运算结果boolean类型时,需要使用if。
当某些语句需要执行很多次时,就用循环结构。
while和for可以进行互换。
区别在于:如果需要定义变量控制循环次数。建议使用for。因为for循环完毕,变量在内存中释放。
修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数1,…){
执行语句;
return 返回值;
}
函数其实就是一个功能,定义函数就是实现功能,通过两个明确来完成:
1.明确该功能的运算完的结果,其实是在明确这个函数的返回值类型。
2.在实现该功能的过程中是否有未知内容参与了运算,其实就是在明确这个函数的参数列表(参数类型&参数个数)。
1.用于定义功能。
2.用于封装代码提高代码的复用性。
1.保证该类的独立运行。
2.因为它是程序的入口。
3.因为它在被jvm调用。
2.为了通过名称就可以明确函数的功能,为了增加代码的阅读性。
1.元素类型[] 变量名 = new 元素类型[元素的个数];
2.元素类型[] 变量名 = {元素1,元素2...};
如果父类中没有空参数的构造函数,那么子类的构造函数内,必须通过super语句指定要访问的父类中的构造函数。
如果子类构造函数中用this来指定调用子类自己的构造函数,那么被调用的构造函数也一样会访问父类中的构造函数。
可以。其实,抽象类和一般类没有太大的区别,都是在描述事物,只不过抽象类在描述事物时,有些功能不具体。所以抽象类和一般类在定义上,都是需要定义属性和行为的。只不过,比一般类多了一个抽象函数。而且比一般类少了一个创建对象的部分。
mport javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.io.*;
public class wordpad implements ActionListener {
JFrame jf;
JMenuBar jmb;
JMenu filem,editMenu,formatm,viewm,helpm;
JMenuItem newi,openi,savei,closei,pagei,printi,savedi;
JScrollPane jsp;
JTextArea area;
JFileChooser jfc;
File file;
public wordpad(){
jf = new JFrame("记事本");
jmb = new JMenuBar();
//建立菜单
filem= new JMenu("文件(F)");
editMenu= new JMenu("编辑(E)");
formatm = new JMenu("格式(O)");
viewm = new JMenu("查看(V)");
helpm = new JMenu("帮助(H)");
//实例化菜单项
newi = new JMenuItem("新建(N)");
openi = new JMenuItem("打开(O)");
savei = new JMenuItem("另存为(A)");
closei = new JMenuItem("关闭(X)");
pagei = new JMenuItem("页面设置(U)");
printi = new JMenuItem("打印(P)");
savedi = new JMenuItem("保存(S)");
area = new JTextArea();
jsp = new JScrollPane(area);
newi.addActionListener(this);
openi.addActionListener(this);
savei.addActionListener(this);
closei.addActionListener(this);
pagei.addActionListener(this);
printi.addActionListener(this);
savedi.addActionListener(this);
//给‘文件’菜单添加菜单项
filem.add(newi);
filem.add(openi);
filem.add(savedi);
filem.add(savei);
filem.addSeparator();
filem.add(pagei);
filem.add(printi);
filem.addSeparator();
filem.add(closei);
//给菜单项设置助记符和快捷键
newi.setMnemonic('N');
newi.setAccelerator(KeyStroke.getKeyStroke('N',java.awt.Event.CTRL_MASK));
openi.setMnemonic('O');
openi.setAccelerator(KeyStroke.getKeyStroke('O',java.awt.Event.CTRL_MASK));
savei.setMnemonic('A');
savei.setAccelerator(KeyStroke.getKeyStroke('A',java.awt.Event.CTRL_MASK));
closei.setMnemonic('X');
closei.setAccelerator(KeyStroke.getKeyStroke('X',java.awt.Event.CTRL_MASK));
pagei.setMnemonic('U');
pagei.setAccelerator(KeyStroke.getKeyStroke('U',java.awt.Event.CTRL_MASK));
savedi.setMnemonic('S');
savedi.setAccelerator(KeyStroke.getKeyStroke('S',java.awt.Event.CTRL_MASK));
printi.setMnemonic('P');
printi.setAccelerator(KeyStroke.getKeyStroke('P',java.awt.Event.CTRL_MASK));
jmb.add(filem);
jmb.add(editMenu);
jmb.add(formatm);
jmb.add(viewm);
jmb.add(helpm);
jf.setJMenuBar(jmb);
jf.add(jsp); //滚动条加到窗体上,需要时显示
jf.setSize(600,500);
jf.setLocation(400,100);
jf.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent event){
Object obj = event.getSource();
if(obj instanceof JMenuItem){
JMenuItem item = (JMenuItem)obj;
if(item == newi){ //新建
new wordpad();
}else if(item==openi){ //打开
jfc=new JFileChooser();
jfc.showOpenDialog(null);
file = jfc.getSelectedFile();
try {
FileInputStream fis = new FileInputStream(file);
byte[] b = new byte[fis.available()];
fis.read(b); //将文件内容读入程序中
area.append(new String(b)); //再输出到文本框中
fis.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
else if(item==savei) { //另存为
jfc=new JFileChooser();
jfc.showSaveDialog(null);
file = jfc.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==savedi) { //保存
}
else if(item==pagei) {
}
else if(item==printi) {
}
else if(item==closei) {
System.exit(1);
}
}
}
}
(1)首先使用File类打开一个文件
(2)通过字节流或字符流的子类,指定输出的位置
(3)进行读/写操作
(4)关闭输入/输出
原文:https://www.cnblogs.com/buxiu888/p/12037267.html