**
JAVA 总结
没有人可以永远无条件的陪伴着你,要知道,下雨天的时候连影子都会缺席
JAVA Q内容:
1、接口
2、String 类的简单使用
3、 Java Scanner 类
4、 Java 数组
学习产出:
## 接口
接口就是规范,定义的是一-组规则,体现了现实世界中“如果你…则必须能…、的思想。如果你是天使,则必须能飞。如果你是汽车,则必须能跑。如果你是好人,则必须能干掉坏人;如果你是坏人,则必须欺负好人。接口就像我们人间的法律-样。制定好后大家都遵守。
1.接口的作用
为什么需要接口?接口和抽象类的区别?
接口就是比“抽象类"还“抽象”的“抽象类" ,可以更加规范的对子类进行约束.I全面地专业地实现了:规范和具体实现的分离。
抽象类还提供某些具体实现,接口不提供任何实现,接口中所有方法都是抽象方法。接口是完全面向规范的,规定了具有的公共方法规范。
接口是两个模块之间通信的标准,通信的规范。如果能把你要设计的模块之间的接口定义好,就相当于完成了系统的设计大纲,剩下的就是添砖加瓦的具体实现了。
接口和实现类不是父子关系,是实现规则的关系。比如:我定义-个Runnable,
Car实现它就能在地上跑,Train 实现它也能在地上跑,飞机实现它也能在地上跑。 就是说,如果它是交通工具,就-定能跑,但是一定要实现Runnable接口。
接口和抽象类的区别
普通类: 具体实现
抽象类: 具体实现,规范(抽象方法)0接口: 规范!
声明格式:
[访问修饰符] interface 接口名[extends 父接口 1,父接口2…]
{常量定义;
方法定义:
}
定义接口的详细说明:
1 访问修饰符: 只能是public或默认。
2 接口名: 和类名采用相同命名机制。
3 extends: 接口可以多继承。
4 常量: 接口中的属性只能是常量,总是: public static final修饰。不写也是。5 方法:接口中的方法只能是: public abstract。 省略的话,也是public abstract.
接口要点
1 子类通过 implements来实现接口中的规范。
2 接口不能创建实例, 但是可用于声明引用变量类型。
3 1 个类实现了接口,必须实现接口中所有的方法,并且这些方法只能是public的。
4 JDK1.8 (含8)后,接口中包含普通的静态方法、默认方法。
2 接口中定义静态方法和默认方法(JDK8以后)
JAVA8之前,接口里的方法要求全部是抽象方法。
JAVA8 (含8)之后,以后允许在接口里定义默认方法和类方法。
1.默认方法
Java 8及以上旧版本,允许给接口添加一个非抽象的方法实现,只需要使用default关
键字即可,这个特征又叫做默认方法(也称为扩展方法)。
默认方法和抽象方法的区别是抽象方法必须要被实现,默认方法不是。作为替代方式,
接口可以提供默认方法的实现,所有这个接口的实现类都会通过继承得到这个方法。
2.静态方法
JAVA8以后,我们也可以在接口中直接定义静态方法的实现。这个静态方法直接从属于接口(接口也是类, -种特殊的类), 可以通过接口名调用。
如果子类中定义了相同名字的静态方法,那就是完全不同的方法了,直接从属于子类。可以通过子类名直接调用。
字符串String类详解
1 String基础
1 String类又称作不可变字符序列。
2 String位于java.lang包中,Java程序默认导入java.lang包下的所有类。
3 Java字符串就是Unicode字符序列,例如字符串"Java" 就是4个Unicode字符J’、‘a’、'v、'a’组成的。
4 Java没有内置的字符串类型,而是在标准Java类库中提供了-一个预定义的类String,每个用双引号括起来的字符串都是String 类的一个实例。
示例String 类的简单使用
Stringe="" ; // 空字符串
String greeting = " Hello World”;
Java 允许使用符号" +“把两个字符串连接起来。
示例字符串连接
Strings1 = "Hello";
String s2 = "World! ";
Strings=s1 + s2; //HelloWorld!
``
说明:
符号"+"把两个字符串 按给定的顺序连接在一起, 并且是完全按照给定的形
当"+"运算符两侧的操作数中只要有一个是字符串(String)类型, 系结
将另一个操作数转换为字符串然后再进行连接。
```java
String中常用的方法:
|
char charAt(int index)
返回字符串中第index个字符
boolean equals(String other)
如果字符串与other相等,返回true;否则,返回false。
boolean equalslgnoreCase(String other)
如果字符串与other相等(忽略大小写) ,则返回true;否则,
返回false。
int indexOf(String str)
返回从头开始查找第一个子字符串str在字符串中的索引
置。如果未找到子字符串str,则返回-1。
lastIndexOf(String str)
返回从末尾开始查找第一个子字符串str在字符串中的索引位
置。如果未找到子字符串str,则返回-1。
| int length0
返回字符串的长度。
String replace(char oldChar,char newChar)
返回一个新串,它是通过用newChar替换此字符串中出现的
所有oldChar而生成的。
boolean startsWith(String prefix)
如果字符串以prefix开始,则返回true。
boolean endsWith(String prefix)
如果字符串以prefix结尾,则返回true.
String substring(int beginIndex)
返回一个新字符串,该串包含从原始字符串beginlndex到串
弓。
String substring(int beginIndex,int endIndex)
返回一个新字符串,该串包含从原始字符串beginIndex到串
尾或endIndex-1的所有字符。
String toLowerCase0
返回一个新字符串,该串将原始字符串中的所有大写字母改成
小写字母。
String toUpperCase()
返回一个新字符串,该串将原始字符串中的所有小写字母改
大写字母。
String trim();
返回一个新字符串,该串删除了原始字符串头部
格。
Scanner 对象的基本语法:
Scanner s = new Scanner(System.in);
1.next( )和nextLine( )的区别
nextLine()方法返回的是Enter键之前的所有字符,它是可以得到带空格的字符串的。
next()会自动消去有效字符前的空格,只返回输入的字符,不能得到带空格的字符串
说明:
next()在输入有效字符之后,将其后输入的空格键、Tab键或Enter键等视为分隔符或结束符。
nextLine()方法的结束符只是Enter键
Java 数组
1 声明数组变量
double[] m; // 首选的方法
或
double mt[]; // 效果相同,但不是首选方法
2 创建数组
Java语言使用new操作符来创建数组,语法如下:
基本类型声明 [ ] 数组 = new 基本类型声明[长度];
另外,还可以使用如下的方式创建数组。
类型声明[ ] 数组 = {new 类型声明(元素)… };
3 多维数组
多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组 如:
String str[][] = new String[3][4];
4 Arrays 类
java.util.Arrays 类能方便地操作数组,它提供的所有方法都是静态的。
具有以下功能:
1给数组赋值:通过 fill 方法。
2对数组排序:通过 sort 方法,按升序。
3比较数组:通过 equals 方法比较数组中元素值是否相等。
4查找数组元素:通过 binarySearch 方法能对排序好的数组进行二分查找法操作。
public static int binarySearch(Object[] a, Object key
用二分查找算法在给定数组中搜索给定值的对象(Byte,Int,double等)。数组在调用前必须排序好的。如果查找值包含在数组中,则返回搜索键的索引;否则返回 (-(插入点) - 1)。
public static boolean equals(long[] a, long[] a2)
如果两个指定的 long 型数组彼此相等,则返回 true。如果两个数组包含相同数量的元素,并且两个数组中的所有相应元素对都是相等的,则认为这两个数组是相等的。换句话说,如果两个数组以相同顺序包含相同的元素,则两个数组是相等的。同样的方法适用于所有的其他基本数据类型(Byte,short,Int等)。
public static void fill(int[] a, int val)
将指定的 int 值分配给指定 int 型数组指定范围中的每个元素。同样的方法适用于所有的其他基本数据类型(Byte,short,Int等)
public static void sort(Object[] a)
对指定对象数组根据其元素的自然顺序进行升序排列。同样的方法适用于所有的其他基本数据类型(Byte,short,Int等)