j***a语言类声明,j***a声明类的语法格式

kodinid 9 0

大家好,今天小编关注到一个比较意思的话题,就是关于java语言声明问题,于是小编就整理了4个相关介绍Java语言类声明的解答,让我们一起看看吧。

  1. java声明两个方法分别是设计这个变量的值和获得这个变量的值?
  2. 接口中的方法在实现类中必须是被显示声明为public的吗?
  3. 为什么java中声明多用Map,List而不是具体实现类型?
  4. java用类创建一个对象什么时候用new什么时候不用?

j***a声明两个方法分别是这个变量的值和获得这个变量的值?

int i = 5;
int j = 6;

i = i + j; // 5 + 6 = 11
j = i - j; // 11 - 6 = 5
i = i - j; // 11 - 5 = 6

两个变量之和不超出范围就没问题

java语言类声明,java声明类的语法格式-第1张图片-安济编程网
图片来源网络,侵删)

接口中的方法在实现类中必须是被显示声明为public的吗?

接口中的方法在实现类中不一定需要被显示声明为public。
在J***a中,接口中的方法默认是public的,因此在实现类中不需要再次声明。但是,如果接口中的方法被声明为default或static,那么在实现类中则需要显式声明相同的方法修饰符。
例如,如果接口中的方法是default修饰符,那么在实现类中必须使用default修饰符来声明相同的方法,否则编译器会报错。同样地,如果接口中的方法是static修饰符,那么在实现类中也必须使用static修饰符来声明相同的方法。
总之,对于接口中的public方法,实现类中不需要显式声明为public,但对于default和static方法,实现类中需要显式声明相同的方法修饰符。

什么j***a中声明多用Map,List而不是具体实现类型

设计模式应该是 适配器 模式吧。

至于为什么用Map实现,个人理解,是为了利用Map的Key不能重复, 来实现 Set的值不重复。

java语言类声明,java声明类的语法格式-第2张图片-安济编程网
(图片来源网络,侵删)

可以看到HashSet的add方法利用的HashMap的put方法,只不过是把值当做了 HashMap中的Key

而put的Value直接定义了一个空对象

首先Map和List是接口,List的实现类常用的有ArraryList,LinkedList还有一些其他用于特殊场景的实现类比如CopyOnWriteArrayList,***如有一种场景我需要先定义一个List用作返回但是不知道用哪一个这个时候可以先定义List list=null;接下来按照需要去创建。还有一种情况我们要把原来的ArraryList改为LinkedList我们之后只需要修改后面就可以了。在实际运用中经常遇到多个类实现同一个接口这个时候用这种方式创建对象会很方便并且扩展性也好,建议看看设计模式你会理解有些场景用它会更有益处。

java语言类声明,java声明类的语法格式-第3张图片-安济编程网
(图片来源网络,侵删)

j***a用类创建一个对象什么时候用new什么时候不用?

看到楼上的回答,特地写代码测试了一下,结果发现execSQL似乎不是静态方法。

j***a的对象都是在堆上分配内存的,所以要用new。SQLiteDatabase database; 只是声明一个对象引用而已,且没有初始化。下面直接调用database.execSQL(SQL)应该会报错的吧。如果你初始化成SQLiteDatabase database = null;下面直接调用会有空指针异常。因为这个引用没有指向一个对象。的确静态方法和静态成员变量使用不用实例化对象,比如Integer.toString(10);可以直接使用。

到此,以上就是小编对于j***a语言类声明的问题就介绍到这了,希望介绍关于j***a语言类声明的4点解答对大家有用。

标签: 声明 方法 实现