当前位置: 首页 > news >正文

上海企业免费建站网站建设制作定制

上海企业免费建站,网站建设制作定制,互联网网站 权限,规模以上工业企业的标准目录 一、内部类 1.1 成员内部类 1.1.1 静态和非静态 1.1.2 调用外部类的结构 1.2 局部内部类 1.2.1 非匿名和匿名 1.2.2 比较 1.2.3 练习 二、枚举类 2.1 枚举类讲解 2.2 代码实现 三、包装类 3.1 包装类与基本数据类型 3.2 练习 3.3 补充 四、自动生成单元测试…

目录

一、内部类

1.1 成员内部类

1.1.1 静态和非静态

1.1.2 调用外部类的结构

1.2 局部内部类

1.2.1 非匿名和匿名

1.2.2 比较

1.2.3 练习

二、枚举类

2.1 枚举类讲解

2.2 代码实现

三、包装类

3.1 包装类与基本数据类型

3.2 练习

3.3 补充

四、自动生成单元测试


一、内部类

1.什么是内部类?

  • 将一个类A定义在另一个类B里面,里面的那个类A就称为`内部类(Innerclass)',类B则称为`外部类(0uterClass)

2.为什么需要内部类?

  • 当一个事物A的内部,还有一个部分需要一个完整的结构B进行描述,而这个内部的完整的结构B又只为外部事物A提供服。
  • 遵循`高内聚、低耦合'的面向对象开发原则。

3.内部类的分类

声明位置:

  • 成员内部类:直接声明在外部类中
  • 局部内部类:声明在方法内,构造器内,代码块内

1.1 成员内部类

成员内部类的理解:定义在外部类中的一个类。它可以访问外部类的所有成员,包括私有成员。

1.1.1 静态和非静态

要创建成员内部类的实例,首先需要创建外部类的实例,然后通过这个实例创建内部类的实例。

//非静态成员内部类
class Outer {private String Field = "外部";class Inner {void display() {System.out.println("访问: " + Field);}}
}public class Main {public static void main(String[] args) {Outer outer = new Outer(); // 创建外部类实例Outer.Inner inner = outer.new Inner(); // 创建内部类实例inner.display(); // 调用内部类的方法}
}

静态内部类不依赖于外部类的实例,可以直接通过外部类的类名来创建

//静态成员内部类
class Outer {private static String Field = "静态外部类";static class Inner {void display() {System.out.println("访问: " + Field);}}
}public class Main {public static void main(String[] args) {Outer.Inner Inner = new Outer.Inner(); // 直接通过外部类名创建Inner.display(); // 调用静态内部类的方法}
}

1.1.2 调用外部类的结构

public class Outer {private String Field = "外部类的私有字段";// 成员内部类class Inner {void display() {// 直接访问外部类的私有成员System.out.println("访问外部类的字段: " + Field);}}public void createInner() {Inner inner = new Inner();inner.display();}public static void main(String[] args) {Outer outer = new Outer();outer.createInner(); // 创建内部类并调用方法}
}

1.2 局部内部类

1.2.1 非匿名和匿名

package test3;public class OuterClassTest {public void mathod() {class A {//局部内部类//声明属性和方法}}//1.提供接口实现类的对象public Comparable getInstance() {class MyComparable implements Comparable{@Overridepublic int compareTo(Object o) {return 0;}}MyComparable myComparable =  new MyComparable();return myComparable;//2.提供接口实现类的匿名对象/* public Comparable getInstance() {class MyComparable implements Comparable{ @Overridepublic int compareTo(Object o) {return 0;}}return new MyComparable();}*///3.提供接口的匿名实现类的对象/*Comparable m = new Comparable() {@Overridepublic int compareTo(Object o) {return 0;}};return 0;*///4.提供接口的匿名实现类的匿名对/*return new Comparable(){@Overridepublic int compareTo(Object o) {return 0;}};*/}
}

1.2.2 比较

  • 非匿名局部内部类:有名字,可以创建多个实例,可以访问方法的局部变量(需要是final或effectively final)。
  • 匿名局部内部类:没有名字,通常只用一次,方便快捷,适用于临时的任务或事件处理。

1.2.3 练习

创建一个匿名内部类,继承于Object,在其中声明一个 public void test() 打印猪八戒

public class OuterClassTest {public static void main(String[] args) {new Object(){public void test(){System.out.println("猪八戒");}}.test();}
}

二、枚举类

2.1 枚举类讲解

理解:枚举(enum)是一种特殊的类,用于表示一组常量。

使用:

  • 开发中,如果针对于某个类,其实例是确定个数的。则推荐将此类声明为枚举类。
  • 如果枚举类的实例只有一个,则可以看做是单例的实现方式。

枚举类实现接口的操作

  • 枚举类实现接口,在枚举类中重写接口中的抽象方法。当通过不同的枚举类对象调用此方法时,执行的是同一个方法
  • 让枚举类的每一个对象重写接口中的抽象方法。当通过不同的枚举类对象调用此方法时,执行的是不同的实现的方法。

2.2 代码实现

例子:枚举类中创建四个季节,春夏秋冬,并实现接口操作

package test4;import static java.time.chrono.JapaneseEra.values;public class seasonTest {public static void main(String[] args) {Season[] values = Season.values();for (int i = 0; i < values().length; i++) {values[i].show();}}
}interface info{void show();
}
enum Season implements info{//默认的父类为Object,不需要特意声明//枚举类开头声明变量SPRING("春天","生机勃勃"){@Overridepublic void show() {System.out.println("春天在哪里");}},SUMMER("夏天","夏日炎炎"){@Overridepublic void show() {System.out.println("夏天吃雪糕");}},AUTUMN("秋天","秋高气爽"){@Overridepublic void show() {System.out.println("秋天的第一别奶茶");}},WINTER("冬天","白雪皑皑"){@Overridepublic void show() {System.out.println("冬天吃东北烤鸡架");}};private final String name;private final String Desc;Season(String name, String desc) {this.name = name;Desc = desc;}public String getName() {return name;}public String getDesc() {return Desc;}@Overridepublic String toString() {return "季节{" +"name='" + name + '\'' +", Desc='" + Desc + '\'' +'}';}//情况1 :枚举类中直接重写,调用时全部一样/* @Overridepublic void show() {System.out.println("这是季节中的一个");}*/
}

结果:

三、包装类

3.1 包装类与基本数据类型

1.为什么要使用包装类?

  • 为了使得基本数据类型的变量具备引用数据类型变量的相关特征(比如:封装性、继承性、多态性),我们给各个基本数据类型的变量都提供了对应的包装类。

2. 有哪些包装类:

3.2 练习

如何转换:
(装箱)基本数据类型--->包装类:

  • 使用包装类的构造器
  • (建议)调用包装类的value0f(xxxxX)

(拆箱)包装类--->基本数据类型: 调用包装类的xxxValue()
注意:

  • 原来使用基本数据类型变量的位置,改成包装类以后,对于成员变量来说,其默认值变化了!

1. 基本数据类型转换为包装类(装箱)

public class BoxingExample {public static void main(String[] args) {// 使用构造函数装箱int primitiveInt = 10;Integer wrappedInt = new Integer(primitiveInt);// 使用静态方法装箱Integer wrappedInt2 = Integer.valueOf(primitiveInt);System.out.println("装箱结果: " + wrappedInt);System.out.println("使用静态方法装箱结果: " + wrappedInt2);}
}

2. 包装类转换为基本数据类型(拆箱)

public class UnboxingExample {public static void main(String[] args) {// 装箱Integer wrappedInt = Integer.valueOf(10);// 使用方法拆箱int primitiveInt = wrappedInt.intValue();// 自动拆箱int autoUnboxedInt = wrappedInt; // Java 会自动转换System.out.println("拆箱结果: " + primitiveInt);System.out.println("自动拆箱结果: " + autoUnboxedInt);}
}

3. 自动装箱与自动拆箱

  • 自动装箱:当基本数据类型赋值给包装类时,Java 自动将其转换为相应的包装类对象。
  • 自动拆箱:当包装类对象赋值给基本数据类型时,Java 自动将其转换为相应的基本数据类型。
public class numberTest {int i1 = 10;Integer i11 = i1;Integer ii2 = i1+1;Boolean b1 = true;Float f1 = 12.4F;//上述都是自动装箱//下述是自动拆箱int i2 = i11;boolean b2 = b1;float f2 = f1;}

3.3 补充

如下图示:

基本数据类型、包装类 ---> String类型:

  • ① 调用String的重载的静态方法value0f(xxx xx)
  • ② 基本数据类型+ " "

String类型 ---> 基本数据类型、包装类:

  • 调用包装类的静态方法:parseXxx()

代码示例:

public class numberTest {@Test//String类型转成基本数据类型 包装类public void test1(){String i1 = "123";int  a1 = Integer.parseInt(i1);System.out.println(a1 + 10);String B1 = "true";boolean b2 = Boolean.parseBoolean(B1);System.out.println(b2);//错误类型/*String  c1 = "123b";Integer d1 = Integer.parseInt(c1);System.out.println(d1);*/}@Testpublic void test2(){//方式1Integer i1 = 11;String i2 = String.valueOf(i1);System.out.println(i2);Boolean B1 = true;String b2 = String.valueOf(B1);System.out.println(b2);//方式2String C1 = i2+"";String C2 = b2+"";System.out.println(C2);System.out.println(C1);}}

四、自动生成单元测试

联网的情况下,输入 @Test,出现红灯并点击,选择Junit4.x下载

由于测试单元的格式是固定的,可以在IDEA中直接设计自动生成单元测试的模板。

找到文件,点击设置

进入设置后,点击编辑器,找到实时模板

有+号点击,先生成一个模板组,命名自拟

 

选中新建的组,点击+号,生成实时模板,缩写为test,描述:自动生成单元测试提示

然后点击更改,选中java,点击确定,即可

回到IDEA中测试一遍,实验成功

http://www.yayakq.cn/news/17081/

相关文章:

  • 广西建设厅官方网站电话品牌建设网站公司排名
  • 做网站的照片要多大像素杭州seo 云优化科技
  • 网站建设演示ppt模板下载玉溪市城乡建设局网站
  • 做HH的网站电影项目做产品众筹哪个网站好
  • 国际网站怎么建设怎么看网站备案号
  • 兖州网站开发福建微网站建设公司
  • 做国外有那些网站比较好的wordpress 菜单浮动
  • 做彩票网站要多大服务器wordpress文章自定义字段开发
  • 建设娱乐城网站wordpress学院
  • 网站解析后怎么解决方法乐山市住房和城乡建设局网站
  • 扬中网站建设价格品牌seo是什么
  • 从事网站类网站建设的网站建设相关的博客有哪些
  • 从化低价网站建设安康做网站的公司
  • 广西柳州科技学校网站建设动易网站免费版
  • 百度地图 添加到网站深圳seo优化排名公司
  • 昆明网站搭建多少钱宝塔织梦网站建设
  • 三元里网站建设wordpress底部美化
  • 建立网站的费用策划制作自己网站有什么软件
  • seo外链技巧济南网站建设与优化
  • 上海做网站报价山西seo博客
  • 互联网网站模块杭州今天查出多少阳性
  • 有做网站代理运营的吗做电子商务网站 除了域名 网页设计 还有服务器 和网站空间
  • 均安公司网站建设校园图书回收网站建设
  • 搭建商城网站学产品设计的可以找什么工作
  • 西安网站建设雄账号管庄网站建设
  • 查手表价格的网站wordpress下划线函数
  • 唐山网站排名推广做网站需要啥
  • 学校网站html模板粉色做网站背景图片
  • 大丰网站开发贵州省建设项目备案查询网站
  • 哪个小说网站版权做的好处广东省建设监理协会网站