本文目录一览:
1、[JAVA中的public classa是什么意思?为什么只能有一个?谢谢](#JAVA中的public classa是什么意思?为什么只能有一个?谢谢)
2、JAVA语言中,什么叫方法过载?
3、java中abstract怎么使用啊,说的详细点。举几个有代表的例子
4、[java 库里的 BiConsumer 可以强制转换成 Consumer 吗](#java 库里的 BiConsumer 可以强制转换成 Consumer 吗)
5、[JAVA 中Stringbuilder类的方法](#JAVA 中Stringbuilder类的方法)
6、[java.util.function.biconsumer 用什么jar包](#java.util.function.biconsumer 用什么jar包)
JAVA中的public classa是什么意思?为什么只能有一个?谢谢
public class
是公共类的意思,public
是访问修饰符。为什么只有一个?Java 规定,一个类文件中,由 public
修饰的类只能有一个,并且类名必须和文件名一致。所以一个类文件中可以有多个类,但由 public
修饰的类只能有一个。
扩展资料:
Java 具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java 可以编写桌面应用程序、Web 应用程序、分布式系统和嵌入式系统应用程序等。
编程工具
- Eclipse:一个开放源代码的、基于 Java 的可扩展开发平台。
- NetBeans:开放源码的 Java 集成开发环境,适用于各种客户机和 Web 应用。
- IntelliJ IDEA:在代码自动提示、代码分析等方面具有很好的功能。
- MyEclipse:由 Genuitec 公司开发的一款商业化软件,是应用比较广泛的 Java 应用程序集成开发环境。
- EditPlus:如果正确配置 Java 的编译器
Javac
以及解释器Java
后,可直接使用 EditPlus 编译执行 Java 程序。
工作原理:
由四方面组成:
- Java 编程语言
- Java 类文件格式
- Java 虚拟机
- Java 应用程序接口
参考资料:
- 百度百科:java
- 菜鸟网:Java 基础语法
- 《Java 从入门到精通(第 3 版)》:清华大学出版社:豆瓣
JAVA语言中,什么叫方法过载?
你好,Java 里“方法过载”也就是“方法重载”,表示类中允许出现参数不同的同名方法,例如下面的类中的 B
方法就是:
public class A {
public void B() {}
public void B(int b) {}
}
java中abstract怎么使用啊,说的详细点。举几个有代表的例子
使用 abstract
(抽象)修饰符,可以修饰类和方法。
abstract
修饰类,会使这个类成为一个抽象类,这个类将不能生成对象实例,但可以作为对象变量声明的类型,也就是编译时类型。抽象类相当于一类的半成品,需要子类继承并覆盖其中的抽象方法。abstract
修饰方法,会使这个方法变成抽象方法,也就是只有声明(定义)而没有实现,实现部分以;
代替。需要子类继承实现(覆盖)。 注意:
- 有抽象方法的类一定是抽象类。
- 但是抽象类中不一定都是抽象方法,也可以全是具体方法。
abstract
修饰符在修饰类时必须放在类名前。abstract
修饰方法就是要求其子类覆盖(实现)这个方法。调用时可以以多态方式调用子类覆盖(实现)后的方法,也就是说抽象方法必须在其子类中实现,除非子类本身也是抽象类。 注意:- 父类是抽象类,其中有抽象方法,那么子类继承父类,并把父类中的所有抽象方法都实现(覆盖)了,子类才有创建对象的实例的能力,否则子类也必须是抽象类。
- 抽象类中可以有构造方法,是子类在构造子类对象时需要调用的父类(抽象类)的构造方法。
示例
下面是一个抽象类:
abstract class E {
public abstract void show(); // public abstract 可以省略
}
然后其它类如果继承它,通常为了实现它里面的方法:
class F extends E {
void show() {
// 写具体实现的代码
}
}
最后在主方法里面定义一个父类引用指向子类对象,就会发生多态现象,例如:
E e = new F();
e.show();
实际调用了子类里面的 show()
方法。
扩展资料:
Java 中的 abstract 方法和 abstract 类的问题:
- 当知道一个类的子类将不同的实现某个方法时,把该类声明为抽象类很有用,可以共用相同的父类方法,不必再定义。
- 抽象类和抽象方法的关系:含有抽象方法的类一定是抽象类,抽象类里不一定含有抽象方法。
- 抽象类存在的意义是用来被继承的。一个类继承了一个抽象类,必须实现抽象类里面所有的抽象方法,否则,此类也是抽象类。
abstract 的规则:
- 抽象类可以没有抽象方法,但是有抽象方法的类必须定义为抽象类。如果一个子类继承一个抽象类,子类没有实现父类的所有抽象方法,那么子类也要定义为抽象类,否则的话编译会出错。
- 抽象类没有构造方法,也没有抽象静态方法。但是可以有非抽象的构造方法。
- 抽象类不能被实例化,但是可以创建一个引用变量,类型是一个抽象类,并让它引用非抽象类的子类的一个实例。
- 不能用
final
修饰符修饰。
参考资料:
- 百度百科--abstract
java 库里的 BiConsumer 可以强制转换成 Consumer 吗
可以直接通过参数前面加上要转换的类型的形式实现。例如:
int i = 97;
char c = (char) i;
System.out.print(c);
输出结果:a
备注:并不是所有的类型都可以强制转换的,所有在开发过程中要遵循对象转换规则(相关类型才可以转换)。
JAVA 中Stringbuilder类的方法
构造方法
public StringBuilder()
构造一个其中不带字符的字符串生成器,初始容量为 16 个字符。public StringBuilder(int capacity)
构造一个其中不带字符的字符串生成器,初始容量由capacity
参数指定。
参数:capacity
- 初始容量。
抛出:NegativeArraySizeException
- 如果capacity
参数小于 0。public StringBuilder(String str)
构造一个字符串生成器,并初始化为指定的字符串内容。该字符串生成器的初始容量为 16 加上字符串参数的长度。
参数:str
- 缓冲区的初始内容。
抛出:NullPointerException
- 如果str
为null
。public StringBuilder(CharSequence seq)
构造一个字符串生成器,包含与指定的CharSequence
相同的字符。该字符串生成器的初始容量为 16 加上CharSequence
参数的长度。
参数:seq
- 要复制的序列。
抛出:NullPointerException
- 如果seq
为null
。
方法详细信息
append
public StringBuilder append(Object obj)
将Object
参数的字符串表示形式追加到此序列。参数将通过String.valueOf
转换为字符串,然后该字符串的字符将追加到此序列。
参数:obj
- 一个Object
。
返回:一个对此对象的引用。
另请参见:String.valueOf(java.lang.Object)
、append(java.lang.String)
public StringBuilder append(String str)
将指定的字符串追加到此字符序列。字符串参数的字符按顺序追加,使此序列的长度增加参数的长度。如果str
为null
,则追加四个字符"null"
。
参数:str
- 一个字符串。
返回:一个对此对象的引用。public StringBuilder append(StringBuffer sb)
将指定的StringBuffer
添加到此序列。按顺序将StringBuffer
参数中的字符添加到该序列中,使该序列在长度上增加该参数的长度。如果sb
为null
,则向该序列中添加 4 个"null"
字符。
参数:sb
- 要添加的StringBuffer
。
返回:此对象的一个引用。public StringBuilder append(CharSequence s)
向此Appendable
添加指定的字符序列。
参数:s
- 要添加的字符串序列。如果csq
为null
,则向该Appendable
添加四个字符"null"
。
返回:此Appendable
的引用
抛出:IndexOutOfBoundsException
public StringBuilder append(CharSequence s, int start, int end)
追加指定CharSequence
的子序列。从索引start
开始的字符按顺序追加到此序列的内容中,直到索引end - 1
或序列末尾。此序列的长度增加end - start
。
参数:s
- 要追加的序列。start
- 子序列的起始索引(包含)。end
- 子序列的结束索引(不包含)。
返回:一个对此对象的引用。
抛出:IndexOutOfBoundsException
- 如果start
或end
为负数,或start > end
或end > s.length()
public StringBuilder append(char[] str)
将字符数组参数的字符串表示形式追加到此序列。数组参数的字符按顺序追加到此序列的内容中。此序列的长度增加参数的长度。
参数:str
- 要追加的字符。
返回:一个对此对象的引用。public StringBuilder append(char[] str, int offset, int len)
追加字符数组参数的子数组的字符串表示形式。从索引offset
开始的字符按顺序追加到此序列的内容中。此序列的长度增加len
。
参数:str
- 要追加的字符。offset
- 第一个字符的索引。len
- 要追加的字符数。
返回:一个对此对象的引用。
public StringBuilder append(boolean b)
将boolean
参数的字符串表示形式追加到此序列。参数将通过String.valueOf
转换为字符串,然后该字符串的字符将追加到此序列。
参数:b
- 一个布尔值。
返回:一个对此对象的引用。
另请参见:String.valueOf(boolean)
、append(java.lang.String)
public StringBuilder append(char c)
将char
参数的字符串表示形式追加到此序列。参数将追加到此序列的内容中。此序列的长度增加 1。
参数:c
- 一个字符。
返回:一个对此对象的引用。
指定者:接口Appendable
中的append
public StringBuilder append(int i)
将int
参数的字符串表示形式追加到此序列。参数将通过String.valueOf
转换为字符串,然后该字符串的字符将追加到此序列。
参数:i
- 一个整数。
返回:一个对此对象的引用。
另请参见:String.valueOf(int)
、append(java.lang.String)
public StringBuilder append(long lng)
将long
参数的字符串表示形式追加到此序列。参数将通过String.valueOf
转换为字符串,然后该字符串的字符将追加到此序列。
参数:lng
- 一个长整型。
返回:一个对此对象的引用。
另请参见:String.valueOf(long)
、append(java.lang.String)
public StringBuilder append(float f)
将float
参数的字符串表示形式追加到此序列。参数将通过String.valueOf
转换为字符串,然后该字符串的字符将追加到此序列。
参数:f
- 一个浮点数。
返回:一个对此对象的引用。
另请参见:String.valueOf(float)
、append(java.lang.String)
public StringBuilder append(double d)
将double
参数的字符串表示形式追加到此序列。参数将通过String.valueOf
转换为字符串,然后该字符串的字符将追加到此序列。
参数:d
- 一个双精度浮点数。
返回:一个对此对象的引用。
另请参见:String.valueOf(double)
、append(java.lang.String)
public StringBuilder appendCodePoint(int codePoint)
将codePoint
参数的字符串表示形式追加到此序列。参数将追加到此序列的内容中。此序列的长度增加Character.charCount(codePoint)
。
参数:codePoint
- 一个 Unicode 代码点
返回:一个对此对象的引用。
从以下版本开始:1.5
delete
public StringBuilder delete(int start, int end)
删除此序列的子字符串。子字符串从指定的start
开始,延伸到索引end - 1
或序列末尾。如果start
等于end
,则不进行任何更改。
参数:start
- 起始索引(包含)。end
- 结束索引(不包含)。
返回:此对象。
抛出:StringIndexOutOfBoundsException
- 如果start
为负数、大于长度或大于end
。
java.util.function.biconsumer 用什么jar包
import java.util.*;
util
代表工具类,包含一些日期转换、字符串处理、获取编译环境信息。
假如没有这句话的话,如果你要用 java.util
包中的类 Scanner
,就需要这样使用:
java.util.Scanner sc = new java.util.Scanner();
而 import java.util.*;
代表导入了 java.util
包中的所有类,这样的话使用 Scanner
就没那么麻烦了:
Scanner sc = new Scanner();