注!:使用时请放在“jieko”包内,并将文件名设置为“jieko”
版本更迭查看最新版等请到奶糖的github查看奶糖的库
粗略版
粗略版(点击打开)
package jieko;
import java.util.Scanner;//引用Scanner类用于输入
/*接口类似与抽象类,
但是一个类可以实现多个接口,
一个类只能继承一个抽象类
*/
/*##########################by milkcandy##########################*/
//单接口
interface shuzhi {//接口
double s();//计算面积
double l();//计算周长
}
class juxing1 implements shuzhi {//实现接口
double x, y;
public void juxing(int x, int y) {//初始化长和宽
this.x = x;
this.y = y;
}
@Override
public double s() {//计算面积
return x*y;
}
@Override
public double l() {//计算周长
return 2*x+2*y;
}
}
//多接口
interface shuchu{
default void shuchu1(double a){// 默认方法,提供一个默认的打印信息实现,可重写
System.out.println("体积"+a+"\t默认方法");
}
static void shuchu2(double a){// 静态方法,用于创建一个通用的打印消息,可不创建对象引用
System.out.println("周长"+a+"\t静态方法");
}
}
class juxing2 implements shuzhi,shuchu {//实现多接口
double x, y;
public void juxing(int x, int y) {//初始化长和宽
this.x = x;
this.y = y;
}
@Override
public double s() {//计算面积
return x*y;
}
@Override
public double l() {//计算周长
return 2*x+2*y;
}
}
public class jieko {
public static void main(String[] args) {
System.out.println("长方形面积周长计算机兼接口演示");
Scanner sc = new Scanner(System.in);
juxing1 j1 = new juxing1();
juxing2 j2 = new juxing2();//创建对象
System.out.print("输入长");
int x = sc.nextInt();//输入长
System.out.print("输入宽");
int y = sc.nextInt();//输入宽
System.out.print("输入序号\t1.单接口无输出\t2.多接口有输出");
int n = sc.nextInt();//选择
if(n==1){//进入单接口,无输出的,进行测试
j1.juxing(x,y);//初始化
System.out.println("体积"+j1.s());//类中无输出,所有这里自己写输出
System.out.println("周长"+j1.l());
}
else if(n==2){
j2.juxing(x,y);
j2.shuchu1(j2.s());//类中有输出,
shuchu.shuchu2(j2.l());//静态方法可以直接引用
}
}
}
详解版
详解版(点击打开)
package jieko; // 定义包名为 jieko
import java.util.Scanner; // 导入 Scanner 类,用于从控制台获取用户输入
/* 接口类似于抽象类,
但是一个类可以实现多个接口,
一个类只能继承一个抽象类
*/
/*##########################by milkcandy##########################*/
// 单接口
interface shuzhi { // 定义一个接口 shuzhi
double s(); // 抽象方法,用于计算面积
double l(); // 抽象方法,用于计算周长
}
// 实现 shuzhi 接口的类
class juxing1 implements shuzhi {
double x, y; // 定义两个成员变量,分别表示矩形的长和宽
// 初始化长和宽的方法
public void juxing(int x, int y) {
this.x = x; // 将传入的参数 x 赋值给成员变量 x
this.y = y; // 将传入的参数 y 赋值给成员变量 y
}
@Override
public double s() { // 实现接口中的 s() 方法,计算矩形的面积
return x * y; // 面积公式:长 × 宽
}
@Override
public double l() { // 实现接口中的 l() 方法,计算矩形的周长
return 2 * x + 2 * y; // 周长公式:2 × 长 + 2 × 宽
}
}
// 接口的继承
interface shuchu { // 定义一个接口 shuchu,用于输出计算结果
// 默认方法,提供一个默认的打印信息实现,子类可以重写
default void shuchu1(double a) {
System.out.println("体积" + a + "\t默认方法"); // 打印体积信息
}
// 静态方法,用于创建一个通用的打印消息,可以直接通过接口名调用
static void shuchu2(double a) {
System.out.println("周长" + a + "\t静态方法"); // 打印周长信息
}
}
// 继承 shuchu 接口的子接口
interface shuchu2 extends shuchu {
// 默认方法,输出接口继承的信息
default void shuchu2() {
System.out.println("这里是接口的继承"); // 打印接口继承的信息
}
}
// 多接口实现类
class juxing2 implements shuzhi, shuchu2 { // 实现 shuzhi 和 shuchu2 接口
double x, y; // 定义两个成员变量,分别表示矩形的长和宽
// 初始化长和宽的方法
public void juxing(int x, int y) {
this.x = x; // 将传入的参数 x 赋值给成员变量 x
this.y = y; // 将传入的参数 y 赋值给成员变量 y
}
@Override
public double s() { // 实现接口中的 s() 方法,计算矩形的面积
return x * y; // 面积公式:长 × 宽
}
@Override
public double l() { // 实现接口中的 l() 方法,计算矩形的周长
return 2 * x + 2 * y; // 周长公式:2 × 长 + 2 × 宽
}
}
// 主类
public class jieko {
public static void main(String[] args) {
System.out.println("长方形面积周长计算机兼接口演示"); // 打印程序标题
Scanner sc = new Scanner(System.in); // 创建 Scanner 对象,用于接收用户输入
juxing1 j1 = new juxing1(); // 创建 juxing1 类的对象,用于单接口测试
juxing2 j2 = new juxing2(); // 创建 juxing2 类的对象,用于多接口测试
// 用户输入长和宽
System.out.print("输入长");
int x = sc.nextInt(); // 从控制台读取用户输入的长,并赋值给变量 x
System.out.print("输入宽");
int y = sc.nextInt(); // 从控制台读取用户输入的宽,并赋值给变量 y
// 用户选择功能
System.out.print("输入序号\t1.单接口无输出\t2.多接口有输出");
int n = sc.nextInt(); // 从控制台读取用户的选择,并赋值给变量 n
if (n == 1) { // 如果用户选择 1,进入单接口测试
j1.juxing(x, y); // 调用 juxing1 类的 juxing 方法,初始化长和宽
System.out.println("体积" + j1.s()); // 调用 juxing1 类的 s() 方法计算面积,并打印结果
System.out.println("周长" + j1.l()); // 调用 juxing1 类的 l() 方法计算周长,并打印结果
} else if (n == 2) { // 如果用户选择 2,进入多接口测试
j2.juxing(x, y); // 调用 juxing2 类的 juxing 方法,初始化长和宽
j2.shuchu1(j2.s()); // 调用 juxing2 类的 shuchu1 方法,输出面积
shuchu.shuchu2(j2.l()); // 调用 shuchu 接口的静态方法 shuchu2,输出周长
j2.shuchu2(); // 调用 juxing2 类的 shuchu2 方法,输出接口继承的信息
}
}
}
中文演示版
中文演示版(点击打开)
package 接口示例; // 定义包名为 接口示例
import java.util.Scanner; // 导入 Scanner 类,用于从控制台获取用户输入
/* 接口类似于抽象类,
但是一个类可以实现多个接口,
一个类只能继承一个抽象类
*/
/*##########################by milkcandy##########################*/
// 单接口
interface 计算接口 { // 定义一个接口 计算接口
double 计算面积(); // 抽象方法,用于计算面积
double 计算周长(); // 抽象方法,用于计算周长
}
// 实现 计算接口 的类
class 矩形1 implements 计算接口 {
double 长, 宽; // 定义两个成员变量,分别表示矩形的长和宽
// 初始化长和宽的方法
public void 设置矩形(int 长, int 宽) {
this.长 = 长; // 将传入的参数 长 赋值给成员变量 长
this.宽 = 宽; // 将传入的参数 宽 赋值给成员变量 宽
}
@Override
public double 计算面积() { // 实现接口中的 计算面积() 方法,计算矩形的面积
return 长 * 宽; // 面积公式:长 × 宽
}
@Override
public double 计算周长() { // 实现接口中的 计算周长() 方法,计算矩形的周长
return 2 * 长 + 2 * 宽; // 周长公式:2 × 长 + 2 × 宽
}
}
// 接口的继承
interface 输出接口 { // 定义一个接口 输出接口,用于输出计算结果
// 默认方法,提供一个默认的打印信息实现,子类可以重写
default void 输出面积(double 面积) {
System.out.println("面积:" + 面积 + "\t默认方法"); // 打印面积信息
}
// 静态方法,用于创建一个通用的打印消息,可以直接通过接口名调用
static void 输出周长(double 周长) {
System.out.println("周长:" + 周长 + "\t静态方法"); // 打印周长信息
}
}
// 继承 输出接口 的子接口
interface 扩展输出接口 extends 输出接口 {
// 默认方法,输出接口继承的信息
default void 输出继承信息() {
System.out.println("这里是接口的继承"); // 打印接口继承的信息
}
}
// 多接口实现类
class 矩形2 implements 计算接口, 扩展输出接口 { // 实现 计算接口 和 扩展输出接口 接口
double 长, 宽; // 定义两个成员变量,分别表示矩形的长和宽
// 初始化长和宽的方法
public void 设置矩形(int 长, int 宽) {
this.长 = 长; // 将传入的参数 长 赋值给成员变量 长
this.宽 = 宽; // 将传入的参数 宽 赋值给成员变量 宽
}
@Override
public double 计算面积() { // 实现接口中的 计算面积() 方法,计算矩形的面积
return 长 * 宽; // 面积公式:长 × 宽
}
@Override
public double 计算周长() { // 实现接口中的 计算周长() 方法,计算矩形的周长
return 2 * 长 + 2 * 宽; // 周长公式:2 × 长 + 2 × 宽
}
}
// 主类
public class 接口演示 {
public static void main(String[] args) {
System.out.println("长方形面积周长计算机兼接口演示"); // 打印程序标题
Scanner 输入 = new Scanner(System.in); // 创建 Scanner 对象,用于接收用户输入
矩形1 矩形实例1 = new 矩形1(); // 创建 矩形1 类的对象,用于单接口测试
矩形2 矩形实例2 = new 矩形2(); // 创建 矩形2 类的对象,用于多接口测试
// 用户输入长和宽
System.out.print("输入长:");
int 长 = 输入.nextInt(); // 从控制台读取用户输入的长,并赋值给变量 长
System.out.print("输入宽:");
int 宽 = 输入.nextInt(); // 从控制台读取用户输入的宽,并赋值给变量 宽
// 用户选择功能
System.out.print("输入序号\t1.单接口无输出\t2.多接口有输出:");
int 选择 = 输入.nextInt(); // 从控制台读取用户的选择,并赋值给变量 选择
if (选择 == 1) { // 如果用户选择 1,进入单接口测试
矩形实例1.设置矩形(长, 宽); // 调用 矩形1 类的 设置矩形 方法,初始化长和宽
System.out.println("面积:" + 矩形实例1.计算面积()); // 调用 矩形1 类的 计算面积() 方法计算面积,并打印结果
System.out.println("周长:" + 矩形实例1.计算周长()); // 调用 矩形1 类的 计算周长() 方法计算周长,并打印结果
} else if (选择 == 2) { // 如果用户选择 2,进入多接口测试
矩形实例2.设置矩形(长, 宽); // 调用 矩形2 类的 设置矩形 方法,初始化长和宽
矩形实例2.输出面积(矩形实例2.计算面积()); // 调用 矩形2 类的 输出面积 方法,输出面积
输出接口.输出周长(矩形实例2.计算周长()); // 调用 输出接口 接口的静态方法 输出周长,输出周长
矩形实例2.输出继承信息(); // 调用 矩形2 类的 输出继承信息 方法,输出接口继承的信息
}
}
}
麻了,你去出书吧!!!
非常好
催更催更!糖糖大佬~