除了List、Set、Map、Queue这四个接口外,其他的都是实现类。例如,ArrayList、LinkedList、HashSet、LinkedHashSet、HashMap、LinkedHashMap、TreeMap等都是实现类,而不是接口。
.
子类构造方法调用父类构造方法要使用 super ( 实参 ),要放在 第一句,当没调用时,系统会自动调用父类 无参 构造方法。
.
String和StringBuffer区别?
前者表示字符串常量,后者表示字符串变量。
.
流按照方向和读取单位分为哪四种?
输入字节流,输出字节流,输入字符流,输出字符流
.
简述this和super的含义和用法?
this指代当前对象,super指代父类对象
this修饰成员变量或方法,类内部构造方法相互调用
super修饰父类成员变量或方法;调用父类构造方法
.
图形用户界面设计中容器的常用布局有哪些(列举3个)?
流布局,边界布局,格布局
FlowLayout,BorderLayout,GridLayout
.
介绍静态成员和实例成员的区别?
静态成员属于类,用static修饰。
实例成员属于对象。
.
输出1000-9999之间所有能被17整除的回文数字。如:2992。
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeSet;
public class Main {
public static void main(String[] args){
Scanner cin=new Scanner(System.in);
for(int i=1000;i<9999;i++)
{
if(hui(i)&&i%17==0)
{
System.out.println(i);
}
}
}
static boolean hui(int num)
{
String s=num+"";
if(s.equals(new StringBuffer(s).reverse().toString()))
{
return true;
}
return false;
}
}
.
定义促销接口ICuxiao,包含抽象方法double calculate(double m),m表示商品原价,返回促销后价格。分别定义两个类实现该接口,一个类为打折类Dazhe,包含成员double zhekou,表示折扣值,如打八折,折扣值就为0.8。另一个类为MaiJian,包含两个成员int mai,jian,表示买mai减jian。并编写main方法进行检验。(10分)
import java.io.File;
import java.io.FileWriter;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args){
ICuxiao c1=new Dazhe(0.8);
System.out.println(c1.calculate(200));
ICuxiao c2=new MaiJian(200,50);
System.out.println(c2.calculate(199));
}
}
interface ICuxiao
{
double calculate(double m);
}
class Dazhe implements ICuxiao
{
double zhekou;
public Dazhe(double zhekou) {
super();
this.zhekou = zhekou;
}
@Override
public double calculate(double m) {
// TODO Auto-generated method stub
return m*zhekou;
}
}
class MaiJian implements ICuxiao
{
double mai,jian;
public MaiJian(double mai,double jian) {
super();
this.mai = mai;
this.jian = jian;
}
@Override
public double calculate(double m) {
// TODO Auto-generated method stub
return m-(int) ((int)m/mai)*jian;
}
}
注意:
1、直接复制,不要手敲
2、实现接口时类不用加参数
3、int b=(int) ((int)m/mai); double转int要int两下
4、从 Source 中找 @Override
.
d:/1.txt文件里存放了若干整数,递增排序后存到d:/2.txt中(10分)。
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws IOException{
Scanner cin=new Scanner(new File("d:/1.txt"));
List<Integer> list=new ArrayList<Integer>();
while(cin.hasNext()) {
list.add(cin.nextInt());
}
Collections.sort(list);
FileWriter fw=new FileWriter("d:\2.txt");
for(int i:list)
{
fw.write(i+"\r\n");
}
fw.close();
}
}
注意:
1、使用 Scanner 类读取文件时,实际上是通过 FileInputStream 或者 RandomAccessFile 类来读取文件的。Scanner 类在读取文件完成后,会自动关闭底层的 FileInputStream 或者 RandomAccessFile 流,因此不需要手动调用 close() 方法。但写完文件记得关闭文件。
2、ArrayList 是动态数组,
方便存储:ArrayList 可以方便地将读取的整数存储到集合中。
方便排序:使用 Collections.sort() 方法可以方便地对 ArrayList 中的元素进行排序。
方便遍历:使用 for-each 循环可以方便地遍历 ArrayList 中的元素,并将它们逐个写入 到文件中。
空间自动扩展:使用 ArrayList 可以避免在读取文件时需要提前确定数组的大小,而是可以动态地扩展数组大小,以适应文件中的元素个数。
3、想要运行代码要抛出异常
.
编写图形界面,给用户出10以内加法题,用户答完后给出对或错的判断(15分)。用户输入答案不是整数给出提示。部分代码:
public class Test {
public static void main(String[] ar) {
new Fr();
}
}
class Fr extends JFrame {
JTextField n1=new JTextField(10);
JLabel op=new JLabel("+");
JTextField n2=new JTextField(10);
JLabel eq=new JLabel("=");
JTextField sum=new JTextField(10);;
JButton chuti=new JButton("出题");
JButton panduan=new JButton("判断");
JLabel result=new JLabel("");
Fr() {
this.setLayout(new FlowLayout());
//设计界面,事件源注册监听器
this.setSize(400,150);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
}
提示:10以内随机数产生方法:(int)(Math.random()*10);
字符串转整数:int a=Integer.parseInt(s);
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class Main {
public static void main(String[] ar) {
new Fr();
}
}
class Fr extends JFrame implements ActionListener{
JTextField n1=new JTextField(10);
JLabel op=new JLabel("+");
JTextField n2=new JTextField(10);
JLabel eq=new JLabel("=");
JTextField sum=new JTextField(10);;
JButton chuti=new JButton("出题");
JButton panduan=new JButton("判断");
JLabel result=new JLabel("");
Fr() {
this.setLayout(new FlowLayout());
//设计界面,事件源注册监听器
this.add(n1);this.add(op);this.add(n2);this.add(eq);
this.add(sum);this.add(chuti);this.add(panduan);
this.add(result);
chuti.addActionListener(this);
panduan.addActionListener(this);
this.setSize(400,150);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getSource()==chuti)
{
n1.setText((int)(Math.random()*10)+"");
n2.setText((int)(Math.random()*10)+"");
}
else
{
int sum1=Integer.parseInt(n1.getText());
int sum2=Integer.parseInt(n2.getText());
try {
int sum3=Integer.parseInt(sum.getText());
if(sum1+sum2==sum3)
{
result.setText("right");
}
else
{
result.setText("wrong");
}
} catch (Exception e2) {
// TODO: handle exception
result.setText("format error");
}
}
}
}
注意:
1、setText() 是输出文本,getText() 是获取文本。
2、Alt+\ 找 try - catch