Java程序面向对象编程的基本架构 接口的定义和使用 求完整代码……谢谢
public class Admins implements Userinterface{
private String name;
private String password;
private static int userNum;
public Admins() {
userNum ++;
}
public Admins(String name, String password) {
thisname = name;
thispassword = password;
userNum ++;
}
public void setPassword(String password) {
thispassword = password;
}
public String getPassword() {
return thispassword;
}
public String toString() {
return "Total: " + AdminsuserNum + "\nName: " + thisname + "\nPassword: " + thispassword;
}
public static void main(String [] args) {
Userinterface [] users = new Userinterface[]{new Admins("jeryy", "11111"), new Admins("green", "123123")};
for(Userinterface u: users) {
Systemoutprintln(u);
}
}
}
interface Userinterface{
public void setPassword(String password);
public String getPassword();
public String toString();
}
public class Bins{
public static void main(String [] args) {
int len = 10;
int [] dist = new int [len];
for(int i = 0; i < distlength; i ++) {
dist[i] = (int)(Mathrandom() 100);
}
javautilArrayssort(dist);
Systemoutprintln("生成数组如下: ");
for(int i: dist) {
Systemoutprint(i + "\t");
}
javautilScanner san = new javautilScanner(Systemin);
Systemoutprint("输入要查找的数: ");
int key = sannextInt();
int res = BinsbinSearch(dist, key);
//Systemoutprintln(res);
String info = (res >=0 ) (key + ":" + res) : "查找失败";
Systemoutprintln(info);
}
public static int binSearch(int [] dist, int key) {
javautilArrayssort(dist);
return javautilArraysbinarySearch(dist, key);
}
}
面向接口的编程就是一般不直接写方法,而是定义一些接口,然后当需要使用的时候,去实现这些接口,接口其实就相当于一种标准,比如动物,猫,狗,都有相同的吃的属性,这时就可以定义一个接口,里面有一个吃的方法。当需要实现这些类的时候,就可以去实现这个接口。
javanet包
javaio包
javanio包
找个CMPP的协议看看说明文档
在找个实现CMPP协议的源码看看
数据持久化、同步队列、重发机制
长连接的断线重连、心跳检测都需要考虑
创建一个程序,实现将键盘上输入的字符在屏幕上显示出来。
使用方法:在控制台"Input:"后面输入字符后回车即可
import javautil;public class SimpleConsole {
public static void main(String[] args) {
Scanner in = new Scanner(Systemin);
Systemoutprint("Input:");
String inputContent = innextLine();
inclose();
Systemoutprintln("Content:" + inputContent);
}
}
2读入一个文件的内容拷贝到另一个文件中。(使用文件输入输出流)
使用方法:编译FileTestjava,执行FileTest。
"Input File:"后面输入源文件(包含扩展名,必须先建立该文件),如 hellotxt
"Output File:"后面输入目标文件(包含扩展名),如 copytxt
import javautil;import javaio;
// Test Class
public class FileTest {
public static void main(String args[]) {
Scanner in = new Scanner(Systemin);
Systemoutprint("Input File:");
String inputFile = innextLine();
Systemoutprint("Output File:");
String outputFile = innextLine();
FileOPS file = new FileOPS(inputFile, outputFile);
filecopyFile();
inclose();
}
}
// File Class
class FileOPS {
private String inputFile;
private String outputFile;
private FileInputStream fis = null;
private FileOutputStream fos = null;
public FileOPS(String inputFile, String outputFile) {
thisinputFile = inputFile;
thisoutputFile = outputFile;
}
public void copyFile() {
thiswriteFile(thisreadFile());
}
private byte[] readFile() {
byte[] data = new byte[2048];
try {
fis = new FileInputStream(inputFile);
int n = fisread(data);
} catch (Exception ex) {
exprintStackTrace();
} finally {
try {
fisclose();
} catch (Exception ex) {
}
}
return data;
}
private void writeFile(byte[] content) {
try {
fos = new FileOutputStream(outputFile);
foswrite(content);
} catch (Exception ex) {
exprintStackTrace();
} finally {
try {
fosclose();
} catch (Exception ex) {
}
}
}
}
3设计一个类及其测试类,具体要求如下:
(1)从标准设备中输入若干行英文句子,直到输入“bye”结束,
(2)将“byte”前的字符都写入到一个文件中,
(3)编写测试类予以测试。
使用方法:"Output File:"后面输入目标文件(包含扩展名)
回车起一新行输入“bye”结束操作。
import javautil;import javaio;
public class ConsoleTest {
public static void main(String args[]) {
Scanner in = new Scanner(Systemin);
Systemoutprint("Output File:");
String outputFile = innextLine();
ConsoleFile confile = new ConsoleFile(outputFile);
confileinputChar();
inclose();
}
}
class ConsoleFile {
private String outputFile;
private String separator = SystemgetProperty("lineseparator");
public ConsoleFile(String outputFile) {
thisoutputFile = outputFile;
}
public void inputChar() {
Scanner in = new Scanner(Systemin);
String content;
String results = "";
while (!(content = innextLine())equals("bye")) {
results += content + separator;
}
inclose();
writeFile(results);
}
private void writeFile(String content) {
FileOutputStream fos = null;
try {
fos = new FileOutputStream(outputFile);
foswrite(contentgetBytes());
} catch (Exception ex) {
exprintStackTrace();
} finally {
try {
fosclose();
} catch (Exception ex) {
}
}
}
}
我觉得接口很有用啊,主要是定义了一个类的规范,我觉得接口比继承更加灵活。
比如说我定义了接口A用来画图形,里面有方法drow,在定义实现类A1(画圆)、A2(画三角)、A3(画矩形)
在某个方法B了调用A的实例来画图形
public void B(A aObject)
{
aObjectdrow();
}
这样我就可以通过传给B不同的参数来决定到底化什么图形,还可以定义A4A5A6H画更多的图形
如果你不用接口,当你添加新的画图类的时候就要不断的去改变B类里的代码
0条评论