当前位置:首页 » 编程语言 » interfaceinjava

interfaceinjava

发布时间: 2022-03-07 14:15:22

java编程

1.定义接口并实现接口

//定义一个接口
package cn.quad.testinterface;

public interface IFTest {

public void testIF();
}

//实现接口
package cn.quad.testinterface;

public class ImpIFTest implements IFTest {

public void testIF() {
System.out.println("Implement IFTest !");
}

}

//main函数,面向接口编程
package cn.quad.testinterface;

public class DemoMain {

private static void useIF(IFTest it) {
it.testIF();
}

public static void main(String []args) {
ImpIFTest iit = new ImpIFTest();
useIF(iit);
}
}

2.定义一个类,包含若干重载方法
/**
* 重载所有基本类型的输出方法
* Quad
* cn.quad.thinginginjava.ch05.answers.P.java
* 2007/10/15 15:57:20
*/
package cn.quad.thinginginjava.ch05.answers;

/**
* @author qiquan
*
*/
public class Ch0504P {

public void rint(boolean s) {
System.out.print(s);
}

public void rint(char c) {
System.out.print(c);
}

public void rint(double d) {
System.out.print(d);
}

public void rint(float f) {
System.out.print(f);
}

public void rint(int i) {
System.out.print(i);
}

public void rint(long l) {
System.out.print(l);
}

public void rint(Object o) {
System.out.print(o);
}

public void rint(String s) {
System.out.print(s);
}

public void rintln(boolean b) {
System.out.print(b);
}

public void rintln(char c) {
System.out.print(c);
}

public void rintln(double d) {
System.out.print(d);
}

public void rintln(float f) {
System.out.print(f);
}

public void rintln(int i) {
System.out.print(i);
}

public void rintln(long l) {
System.out.print(l);
}

public void rintln(Object o) {
System.out.print(o);
}

public void rintln(String s) {
System.out.print(s);
}
}

㈡ java.util.Collection The root interface in the collection hierarchy. A collection rep

Collection 层次结构 中的根接口。Collection 表示一组对象,这些对象也称为 collection
的元素。一些 collection 允许有重复的元素,而另一些则不允许。一些 collection 是有序的,而另一些则是无序的。JDK
不提供此接口的任何直接 实现:它提供更具体的子接口(如 Set 和 List)实现。此接口通常用来传递
collection,并在需要最大普遍性的地方操作这些 collection。

包 (bag) 或多集合 (multiset)(可能包含重复元素的无序 collection)应该直接实现此接口。
所有通用的 Collection 实现类(通常通过它的一个子接口间接实现
Collection)应该提供两个“标准”构造方法:一个是 void(无参数)构造方法,用于创建空 collection;另一个是带有
Collection 类型单参数的构造方法,用于创建一个具有与其参数相同元素新的 collection。实际上,后者允许用户复制任何
collection,以生成所需实现类型的一个等效 collection。尽管无法强制执行此约定(因为接口不能包含构造方法),但是 Java 平台库中所有通用的
Collection 实现都遵从它。

此接口中包含的“破坏性”方法,是指可修改其所操作的 collection 的那些方法,如果此 collection 不支持该操作,则指定这些方法抛出
UnsupportedOperationException。如果是这样,那么在调用对该 collection
无效时,这些方法可能,但并不一定抛出 UnsupportedOperationException。例如,如果要添加的 collection
为空且不可修改,则对该 collection 调用 addAll(Collection)
方法时,可能但并不一定抛出异常。

一些 collection 实现对它们可能包含的元素有所限制。例如,某些实现禁止 null
元素,而某些实现则对元素的类型有限制。试图添加不合格的元素将抛出一个未经检查的异常,通常是 NullPointerException 或
ClassCastException。试图查询是否存在不合格的元素可能抛出一个异常,或者只是简单地返回
false;某些实现将表现出前一种行为,而某些实现则表现后一种。较为常见的是,试图对某个不合格的元素执行操作且该操作的完成不会导致将不合格的元素插入
collection 中,将可能抛出一个异常,也可能操作成功,这取决于实现本身。这样的异常在此接口的规范中标记为“可选”。

由每个 collection 来确定其自身的同步策略。在没有实现的强烈保证的情况下,调用由另一进程正在更改的 collection
的方法可能会出现不确定行为;这包括直接调用,将 collection 传递给可能执行调用的方法,以及使用现有迭代器检查 collection。

Collections Framework 接口中的很多方法是根据 equals
方法定义的。例如,contains(Object
o) 方法的规范声明:“当且仅当此 collection 包含至少一个满足 (o==null ? e==null
:o.equals(e)) 的元素 e 时,返回 true。”不
应将此规范理解为它暗指调用具有非空参数 o 的 Collection.contains 方法会导致为任意的
e 元素调用 o.equals(e) 方法。可随意对各种实现执行优化,只要避免调用 equals
即可,例如,通过首先比较两个元素的哈希码。(Object.hashCode()
规范保证哈希码不相等的两个对象不会相等)。较为常见的是,各种 Collections Framework 接口的实现可随意利用底层 Object
方法的指定行为,而不管实现程序认为它是否合适。

此接口是 Java
Collections Framework 的一个成员。

从以下版本开始:
1.2
另请参见:
Set, List, Map, SortedSet, SortedMap, HashSet, TreeSet, ArrayList, LinkedList, Vector, Collections, Arrays, AbstractCollection

㈢ java接口内部类

题目的要求是:该嵌套类中有一个static方法,它将调用接口中的方法并显示结果

请注意,这里是 方法,你在代码中,接口中嵌套了一个 内部类,你写个方法就可以调用了

至于:实现这个接口,并将这个实现的一个实例传递给这个方法 这个需求

可以考虑用反射来实现

㈣ implement the list interface in java是什么意思

implement the list interface in java
用java实现列表界面
implement the list interface in java
用java实现列表界面

㈤ java问题输入输出设备接口IOInterface,具有两个方法boolean in(int[] signal),int[] out(),拜托各

没找到你声明的类但是从字面猜第一个是判断有无输入信号,第二个不全没法判断

㈥ java in int 类型什么意思

弄懂这个问题,你首先要知道两个概念:协变(返回值可是是其派生类)、逆变(输入参数可以是其基类)
这里的in对应的就是:逆变。如果有out对应的就是:协变
针对这个问题,这里in int errorCode 表示这里不仅可以输入int类型,还可以输入int的基类型

㈦ java实现接口格式是怎样的



,B
{
inta;
intb;

publicJButtonTest()
{}

@Override
publicvoiddraw()
{
System.out.println("draw");
}

@Override
publicvoidprint()
{
System.out.println("print");
}
}

interfaceA
{
publicvoidprint();
}

interfaceB
{
publicvoiddraw();
}

㈧ 按理说一个非抽象类实现了一个接口不应该实现这个接口全部的方法嘛可是在think in java实现Comparator

真是很细心,这个问题从来没有想过

Ojbect类中的equals

publicbooleanequals(Objectobj){
return(this==obj);
}

现在问题变成了为什么Comparator要有

booleanequals(Objectobj);

方法

请一定要记住实现了Comparator方法,最好不要覆盖equals方法

下面英文的大概意思是你覆盖了Comparator的equals方法最好是不要把这个类的相关逻辑掺和进来,因为一个普通的类覆盖了equals方法都会检查某些属性是否相等,但是比较器就应该比较比较器本身是否相等

In common java objects, we will decide two objects are equal by checking its one or more than one instance variables.

Form javaDoc Comparator

returntrue->thiscomparator.

Means we need to check for its business logic (This is what really makes two comparators objects equal)
Also from JavaDoc

Notethatitisalways*safenot*tooverrideObject.equals(Object).

Since the POJO class can have its own equals() which would check for some of its instance variables(Which makes it really unique). If we implement comparator interface in the same POJO class and provide the equals () for comparator then we cannot check equality for POJO class, vice versa. That is the reason it mentioned it's not to override equals().
As explained earlier this is to 'just to expand on the general contract of the method'. So that we would treat comparator equals() is different from POJO equals() .


下面是引用自另一篇文章:

The equals( ) method, shown here, tests whether an object equals the invoking comparator:

booleanequals(Objectobj)

obj is the object to be tested for equality. The method returns true if obj and the invoking object are both Comparator objects and use the same ordering. Otherwise, it returns false.

Overriding equals( ) is unnecessary, and most simple comparators will not do so.

如果覆盖了Comparator是比较他们都是比较器,并且是使用相同的比较策略,所以一般不要覆盖



再说了比较器本身的用途就是用来比较,某些模型不应该实现这个接口,为什么Comparator要麻烦的写出这个方法,是要告诉我们正确覆盖这个equals方法的方式,但是由于Object中已经有这个这个方法的实现了,所以一般实现Comparator是不需要覆盖这个equals方法的,覆盖也是没有意义的,所以thinking in java的作者就正确地没有覆盖这个可以不需要覆盖的方法

㈨ 一个java问题,interface

d

abstract class可以有自己的数据成员,也可以有非abstarct的成员方法。而在interface只能够有静态的不能被修改的数据成员(也就是必须是static final的,不过在interface中一般不定义数据成员),所有的成员方法都是abstract的

㈩ 接口interface文件运行出现Exception in thread "main" Java.lang.NoSu。。。可以编译成功

根据您的描述您是运行了一个接口,接口应该是无法运行的,一个类运行需要有一个静态的main方法体。而接口只能有非静态的抽象方法(没有方法体),所以不可能成功运行。只能运行接口的实现。

热点内容
视酷聊天源码 发布:2025-01-13 14:22:55 浏览:277
源码输出电视盒 发布:2025-01-13 14:16:54 浏览:172
D算法求矩阵 发布:2025-01-13 14:16:20 浏览:136
商城前端源码 发布:2025-01-13 14:08:43 浏览:48
每个人身上都有密码是什么 发布:2025-01-13 14:08:40 浏览:472
怎么看java 发布:2025-01-13 13:54:18 浏览:10
没脚本导演 发布:2025-01-13 13:52:22 浏览:339
获取android签名 发布:2025-01-13 13:40:21 浏览:595
单片机编译器和驱动 发布:2025-01-13 13:31:33 浏览:440
tis服务器怎么进pe 发布:2025-01-13 13:31:02 浏览:277