[Java的] 使用接口

有提出了许多问题,如用户界面来完成, 为什么使用的界面, 如何使用界面,… 在本文中,我希望能够回答多少有些理解的,可能的,因为它通常是比较抽象=)) 而且说在下面写的是什么,是我有限的了解一部分, 如果你能补充的东西真的非常适合我,以及你阅读追踪.

1. 使用接口的联合行动,创建对象

例如,总是离线. 想象一下,你每天学习到很多学科, 数学, LY, 化学, 天生, 英语, 面包车, 历史,… 每个科目一本书或玩, 所以真的很不方便,当你 “组成” 上课. 现在,我向你不需要知道今天的方式是什么研究了其目标来上课, 即使用通用的,可以容纳所有的科目. 本身是由在所有科目取得这样 1 多功能笔记本电脑, 学校才刚刚把它捡起掉完成=)).

在编程的书, (登记) 通用的接口,你. 现在就开始试用离线. 你数学, LY, 化学, 天生,.. 像我刚才提到的, 每个模块是一类. 你有书的阵列,需要把它带到学校,我们尝试看看我们如何正常?

package cachhoc.net.useinterface.method;

class Toan {
	public void mangSachToiTruong() {
		System.out.println("Sach Toan duoc mang toi truong");
	}
}

class Ly {
	public void mangSachToiTruong() {
		System.out.println("Sach Ly nhe");
	}
}

class Hoa {
	public void mangSachToiTruong() {
		System.out.println("Sach Hoa ok");
	}
}

class Sinh {
	public void mangSachToiTruong() {
		System.out.println("Sach Sinh day roi");
	}
}

public class TruongHoc {
	public static void main(String[] args) {
		Object[] sach = { new Toan(), new Ly(), new Hoa(), new Sinh() };
		for (Object s : sach) {
			s.mangSachToiTruong(); // loi roi nhe
		}
	}
}

你去试试代码, 你将看到的是创建数组国家文物局,我们把它的对象数组并调用该方法没有其他办法mangSachToiTruong() 将不可能.

现在的界面将帮助我们解决这个问题. 首先,我们创建一个接口 书籍 有方法 mangSachToiTruong();

package cachhoc.net.useinterface.method;

public interface Sach {
	public void mangSachToiTruong();
}

然后我们创建类全胜, 玻璃, 花, 出生实施和执行萨克mangSachToiTruong方法和问题如下得到解决.

package cachhoc.net.useinterface.method;

class Toan implements Sach {
	@Override
	public void mangSachToiTruong() {
		System.out.println("Sach Toan duoc mang toi truong");
	}
}

class Ly implements Sach {
	@Override
	public void mangSachToiTruong() {
		System.out.println("Sach Ly nhe");
	}
}

class Hoa implements Sach {
	@Override
	public void mangSachToiTruong() {
		System.out.println("Sach Hoa ok");
	}
}

class Sinh implements Sach {
	@Override
	public void mangSachToiTruong() {
		System.out.println("Sach Sinh day roi");
	}
}

public class TruongHoc {
	public static void main(String[] args) {
		Sach[] sach = { new Toan(), new Ly(), new Hoa(), new Sinh() };
		for (Sach s : sach) {
			s.mangSachToiTruong();
		}
	}
}

2. 数据传输, 类之间的消息

这就是常说的类数据交换, 通过接口消息. 在本节中,我们将学习它. 这个问题会更清楚,如果我们做的接口, 即使用JFrame. 但是,如果你不没有星星,界面不错.

你有 2 类是GiaoDien和下载. GiaoDien类有一个按钮, 点击下载方法调用类下载下载文件, 和下载过程中, 类下载回去上课GiaoDien知道有多少是下载. 你看 2 自己的以下方法.

如何 1 (怎么老玉米或用警棍): 通信对象的类接口的更新下载的下载百分比.

package cachhoc.net.useinterface.senddata;

public class GiaoDien {
	private Download download;

	/**
	 * phuong thuc khoi tao Giao dien, dong thoi khoi tao doi tuong download va
	 * truyen chinh giao dien sang class Download de cap nhat giao dien
	 */
	public GiaoDien() {
		download = new Download(this);
	}

	private void nhanDownload() {
		download.download();
	}

	public void capNhatGiaoDien(int phanTramDownload) {
		System.out.println("class giao dien cap nhat duoc: " + phanTramDownload
				+ "%");
	}

	public static void main(String[] args) {
		GiaoDien giaoDien = new GiaoDien();
		giaoDien.nhanDownload();
	}
}
package cachhoc.net.useinterface.senddata;

public class Download {
	private GiaoDien giaoDien;

	/**
	 * @param giaoDien
	 *            de cap nhat giao dien
	 */
	public Download(GiaoDien giaoDien) {
		this.giaoDien = giaoDien;
	}

	public void download() {
		for (int i = 0; i < 100; i++) {
			System.out.println("Dang download...");
			giaoDien.capNhatGiaoDien(i);
		}
		System.out.println("Ket thuc download");
	}
}

正如你所看到的,更新的界面,简单的证明,我们刚刚通过的接口类对象完成下载.
然而,当对象被传递给giaoDien发生许多问题, 下载类被允许调用类,其中,没有必要GiaoDien的方法, 需要更新的接口方法,允许类的调用下载它可以被称为是一个人在这里向公众而不是私人. 或者,假设我们有一流的经历在课堂中间的某一类X的方法下载下载新的电话,所以我们要转移到X GiaoDien, X再传输到下载, 如此复杂… 和许多其他的限制,将真正让你更好的理解.

如何 2: 使用界面

我们创建一个名为接口CapNhat包含的方法capNhatGiaoDien(); GiaoDien然后实现以下CapNhat:

package cachhoc.net.useinterface.senddata;

public interface CapNhat {
	public void capNhatGiaoDien(int giaTri);
}
package cachhoc.net.useinterface.senddata;

public class Download {
	private CapNhat capNhat;

	/**
	 * @param capNhat
	 *            lang nghe su kien download
	 */
	public void addDownloadListener(CapNhat capNhat) {
		this.capNhat = capNhat;
	}

	public void download() {
		for (int i = 0; i < 100; i++) {
			System.out.println("Dang download...");

			/**
			 * Khi goi capNhat.capNhatGiaoDien(i); thi phuong thuc nay se tu
			 * dong duoc goi trong giao dien
			 * */

			capNhat.capNhatGiaoDien(i);
		}
		System.out.println("Ket thuc download");
	}
}
package cachhoc.net.useinterface.senddata;

public class GiaoDien implements CapNhat {
	private Download download;

	/**
	 * phuong thuc khoi tao Giao dien, dong thoi dat lang nghe su kien download
	 */
	public GiaoDien() {
		download = new Download();

		/** dat lang nghe su kien download */
		download.addDownloadListener(this);
	}

	private void nhanDownload() {
		download.download();
	}

	/**
	 * Tu dong duoc goi trong qua trinh download thong qua interface CapNhap
	 */
	@Override
	public void capNhatGiaoDien(int giaTri) {
		System.out.println("class giao dien cap nhat duoc: " + giaTri + "%");
	}

	public static void main(String[] args) {
		GiaoDien giaoDien = new GiaoDien();
		giaoDien.nhanDownload();
	}
}

你可以看到,道路 2 这克服了传统方法的弊端 1. 类并不需要下载电视机前的观众,仅仅一个接口GiaoDien CapNhat, 因此该方法, 非药物GiaoDien计算 “裸露” 或可被称为下载. 如果你通过某种类X,然后下载新的实现并不需要通过已更新下载过程中接口的对象GiaoDien中级班. 或者,假设有许多接口需要下载期间被更新,这是淡漠,如何 1 因为你需要通过所有类接口下载会比较困难…

以上是 2 他们用最显眼的接口应用. 我们希望它可以帮助你在这个过程中学习如何使用界面.

在本文来源 cachhoc.net