string类
- String 类又称作不可变字符序列
- String 位于java.lang包中,Java程序默认导入java.lang包下的所有类
- Java字符串就是Unicode字符序列
- Java没有内置的字符串类型,而是在标准java类库中提供了一个预定义的类String,每个用双引号括起来的字符串都是String类的一个实例。
String 常用的方法
如图
实际运用:
package com.jxust.inclass;
public class bb {
public static void main(String[] args) {
String s1="core Java";
String s2="Core Jave";
System.out.println(s1.charAt(3));//提取下标为3的字符
System.out.println(s2.length());//字符串的长度
System.out.println(s1.equals(s2));//比较俩个字符串是否相等
System.out.println(s1.equalsIgnoreCase(s2));//同上 但忽略大小写
System.out.println(s1.indexOf("Java"));//字符串s1中是否包含apple
String s=s1.replace(' ','&');//将s1中的空格替换为&
System.out.println(s);
}
}
内部类
定义:把一个类放到另外一个类的内部定义,称为内部类
内部类的俩个要点:
- 内部类提供了更好的封装。只能让外部类直接访问,不允许同一个包中的其他类直接访问
- 内部类可以直接访问外部类的私有属性,其被当作外部类的成员变量。但是外部类不能直接访问内部类的内部属性
非静态内部类
- 非静态内部类对象必须寄存在一个外部类对象里。因此,如果有一个非静态内部类 对象那么一定存在对应的外部类对象。非静态内部类对象单独属于外部类的某个对象
-
非静态内部类可以直接访问外部类的成员,但是外部类不能直接访问非静态内部类成员。
-
非静态内部类不能有静态方法、静态属性和静态初始化块。成员变量访问要点:1 内部类属性:this.变量名2 外部类属性:外部类名.this.变量名内部类的访问:1 外部类中定义内部类:new Inner();2 外部类以外的地方使用非静态内部类: Outer.Inner ss= new Outer().new Inner();
静态内部类
static class ClassName{
//类体
}
1.静态内部类可以访问外部类的静态成员,不能访问外部类的普通成员
2.静态内部类看做外部类的一个静态成员
匿名内部类
适合那种只需要是用一次的类。在安卓开发、awt、swing 开发中常见。
语法:
new 父类构造器(实参类表)\ 实现接口 (){
//匿名内部类类体
}
局部内部类
定义在方法内部的,作用域只限于本方法,称为局部内部类。
package com.jxust.inclass;
import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;
// 外部类
public class outer1 {
private int age =10;
private void show(){
System.out.println("NB");
}
//内部类
public class Inner{
private String name="WJH";
private int age=20;
public void showInner(){
System.out.println("LBWNB");
System.out.println(age);
System.out.println(outer1.this.age);
//当外部类属性与内部类属性重名时,可以通过:outer1.this.age
show();//内部类可以直接使用外部类的成员
}
}
public static void main(String[] args) {
outer1.Inner inner1=new outer1().new Inner();
inner1.showInner();
outer1 out2=new outer1();
Inner inner2=out2.new Inner();
inner2.showInner();
}
}
package com.jxust.inclass;
public class Face {
private String shape="螺旋脸";
class Nose{
private String shape="牛马";
public void breath(){
System.out.println("鼻子长在了"+Face.this.shape+"形状的脸上");
System.out.println("呼吸 呼吸 呼吸");
}
}
public static void main(String[] args) {
Face.Nose nose=new Face().new Nose();
nose.breath();
}
}