[其他]

Java面向对象

[复制链接]
4176|7
手机看帖
扫描二维码
随时随地手机跟帖
真爱有你|  楼主 | 2021-5-14 16:32 | 显示全部楼层 |阅读模式
本帖最后由 真爱有你 于 2021-6-9 14:34 编辑

/*****************************************************************************************************
Java关键字:
private、protected、public、default
abstract、class、extends、final、implements、interface、native、new、static、strictfp、synchronized、transient、volatile
break、case、continue、default、do、else、for、if、instanceof、return、switch、while
boolean、byte、char、double、float、int、long、short
super、this、void
import、package
assert、catch、finally、throw、throws、try
const、goto、null
*****************************************************************************************************/

class Resource
{
    String name;
    int age;
    String designation;
    double salary;

    /* Resource类的构造方法 */
    public Resource(String name)
    {
        this.name = name;
    }

    public void setAge(int setAge)
    {
        age = setAge;
    }

    public void setDesignation(String setDesignation)
    {
        designation = setDesignation;
    }

    public void setSalary(double setSalary)
    {
        salary = setSalary;
    }

    public void printfAll()
    {
        System.out.println("人员名字:" + name);
        System.out.println("人员年龄:" + age);
        System.out.println("人员级别:" + designation);
        System.out.println("人员薪资:" + salary + "\r\n");
    }
}

class ResourceManage
{
    public static void main(String[] args)
    {
        /* 调用Resource类的构造方法创建3个对象 */
        Resource Dyige = new Resource("真爱有你");
        Resource Derge = new Resource("举世无双");
        Resource Dsange = new Resource("天下无敌");

        /* 调用对象一的成员方法 */
        Dyige.setAge(1998);
        Dyige.setDesignation("高级工程师");
        Dyige.setSalary(10000);
        Dyige.printfAll();

        /* 调用对象二的成员方法 */
        Derge.setAge(1997);
        Derge.setDesignation("中级工程师");
        Derge.setSalary(20000);
        Derge.printfAll();

        /* 调用对象三的成员方法 */
        Dsange.setAge(1996);
        Dsange.setDesignation("初级工程师");
        Dsange.setSalary(30000);
        Dsange.printfAll();
    }
}



使用特权

评论回复
真爱有你|  楼主 | 2021-6-2 10:30 | 显示全部楼层
本帖最后由 真爱有你 于 2021-6-9 14:35 编辑

/*****************************************************************************************************
Java基本数据类型:int、byte、short、long、float、double、boolean、char

boolean类型默认值是false。
char类型是一个16位Unicode字符。
int类型是32位有符号整数,以二进制补码表示,默认值是0,最小为-2@31,最大为2@31-1,一般整型变量默认为int类型。
byte类型是8位有符号整数,以二进制补码表示,默认值是0,最小为-2@7,最大为2@7-1。
short类型是16位有符号整数,以二进制补码表示,默认值是0,最小为-2@15,最大为2@15-1。
long类型是64位有符号整数,以二进制补码表示,默认值是0,最小为-2@63,最大为2@63-1。
float类型是32位单精度浮点数,默认值是0.0。
double类型是64位双精度浮点数,默认值是0.0,浮点数类型默认是double。
*****************************************************************************************************/

class JavaType
{
    static byte byteType;
    static char charType;
    static double doubleType;
    static float floatType;
    static int intType;
    static long longType;
    static short shortType;

    static char char_a = 'a';
    static char char_A = 'A';
    static int int_1 = char_a;
    static int int_2 = char_A + int_1;

    public static void main(String[] args)
    {
        /* Java基本数据类型:byte */
        System.out.println("byte类型的数据长度:" + Byte.SIZE + "位");
        System.out.println("byte类型的包装类是:java.lang.Byte");
        System.out.println("byte类型的默认值是:" + byteType);
        System.out.println("byte类型的最小值是:" + Byte.MIN_VALUE);
        System.out.println("byte类型的最大值是:" + Byte.MAX_VALUE);
        System.out.println();

        /* Java基本数据类型:char */
        System.out.println("char类型的数据长度:" + Character.SIZE + "位");
        System.out.println("char类型的包装类是:java.lang.Character");
        System.out.println("char类型的默认值是:" + charType);
        System.out.println("char类型的最小值是:" + (int)Character.MIN_VALUE);
        System.out.println("char类型的最大值是:" + (int)Character.MAX_VALUE);
        System.out.println();

        /* Java基本数据类型:double */
        System.out.println("double类型的数据长度:" + Double.SIZE + "位");
        System.out.println("double类型的包装类是:java.lang.Double");
        System.out.println("double类型的默认值是:" + doubleType);
        System.out.println("double类型的最小值是:" + Double.MIN_VALUE);
        System.out.println("double类型的最大值是:" + Double.MAX_VALUE);
        System.out.println();

        /* Java基本数据类型:float */
        System.out.println("float类型的数据长度:" + Float.SIZE + "位");
        System.out.println("float类型的包装类是:java.lang.Float");
        System.out.println("float类型的默认值是:" + floatType);
        System.out.println("float类型的最小值是:" + Float.MIN_VALUE);
        System.out.println("float类型的最大值是:" + Float.MAX_VALUE);
        System.out.println();

        /* Java基本数据类型:int */
        System.out.println("int类型的数据长度:" + Integer.SIZE + "位");
        System.out.println("int类型的包装类是:java.lang.Integer");
        System.out.println("int类型的默认值是:" + intType);
        System.out.println("int类型的最小值是:" + Integer.MIN_VALUE);
        System.out.println("int类型的最大值是:" + Integer.MAX_VALUE);
        System.out.println();

        /* Java基本数据类型:long */
        System.out.println("long类型的数据长度:" + Long.SIZE + "位");
        System.out.println("long类型的包装类是:java.lang.Long");
        System.out.println("long类型的默认值是:" + longType);
        System.out.println("long类型的最小值是:" + Long.MIN_VALUE);
        System.out.println("long类型的最大值是:" + Long.MAX_VALUE);
        System.out.println();

        /* Java基本数据类型:short */
        System.out.println("short类型的数据长度:" + Short.SIZE + "位");
        System.out.println("short类型的包装类是:java.lang.Short");
        System.out.println("short类型的默认值是:" + shortType);
        System.out.println("short类型的最小值是:" + Short.MIN_VALUE);
        System.out.println("short类型的最大值是:" + Short.MAX_VALUE);
        System.out.println();

        /* Java自动类型转换 */
        System.out.println("char类型字符" + char_a + "自动转换为int类型后值为:" + int_1);
        System.out.println("char类型字符" + char_A + "和int类型数据" + int_1 + "计算的结果为:" + int_2);
        System.out.println();

        /* Java强制类型转换 */
        System.out.println("int类型数据" + int_2 + "强制转换为byte类型后值为:" + (byte)int_2);
    }
}

使用特权

评论回复
真爱有你|  楼主 | 2021-6-3 18:18 | 显示全部楼层
本帖最后由 真爱有你 于 2021-6-9 17:22 编辑

Java变量类型:类变量、实例变量、局部变量

类变量是独立于方法以外的变量,由static修饰符修饰,因此类变量也是静态变量。当一个类创建了多个对象,类只有一份类变量拷贝,在任何情况下类都不会有多份类变量拷贝。类变量通常被声明为常量,类变量被初始化后不可改变,类变量存储在静态存储区。类变量在第一次被访问时被创建,程序结束时被销毁。类变量对类的方法、构造方法或语句块可见;为了对类的引用者可见,类变量通常声明为public型。数值类型的类变量默认值为0,bool类型的类变量默认值为false,应用类型的类变量默认值为空。类变量的值可以在声明的时候指定,也可以在构造方法中指定,也可以在静态语句中进行初始化。类变量可以通过类名.变量名的方式访问。
实例变量是定义在类里面的变量,但是独立于方法、构造方法和语句块以外。当一个对象被实例化以后,每个实例变量的值随之确定。实例变量在对象被创建的时候被创建,对象被销毁的时候被销毁。实例变量的值应该至少被一个方法、构造方法、语句块引用,使外部可以通过这些方式获取实例变量的信息。实例变量可以在引用前或应用后声明,实例变量可以通过修饰符进行修饰。实例变量对类的方法、构造方法和语句块是可见的。实例变量的值可以在声明的时候指定,也可以在构造方法中指定,数值类型的实例变量默认值是0,bool类型的实例变量默认值是false,引用类型的实例变量默认值是空。实例变量可以直接通过变量名进行访问,但是在静态方法或其它类中应该通过完全限定名进行访问。
局部变量是类的方法体内、构造方法和语句块中定义的变量。局部变量在方法、构造方法或语句块被执行的时候被创建,当方法、构造方法或语句块被执行完成的时候被销毁。局部变量只对声明它的方法、构造方法或语句块可见,局部变量的作用域只在方法和构造方法内或语句块中。局部变量不能通过修饰符进行修饰,局部变量是在栈上分配的。局部变量没有默认值,必须经过初始化才能使用。

使用特权

评论回复
真爱有你|  楼主 | 2021-6-9 14:38 | 显示全部楼层
本帖最后由 真爱有你 于 2021-6-15 17:34 编辑

/*****************************************************************************************************
Java访问修饰符和非访问修饰符:

Java修饰符用来定义类、方法和变量,通常在语句的最前端。访问修饰符可以保护程序对类、方法和变量的访问,Java访问修饰符有default、public、protected、private。default可以修饰类、接口、变量、方法;default在同一个类、同一个包内、同一个包内的子类和孙类可见,对不同包、不同包的子类和孙类不可见。public可以修饰类、接口、方法、构造方法;public能够被任何其它类访问,public在同一个类、不同类、同一个包内、不同包内都是可见的;由于类的继承性,类的所有public方法和变量都能被类的子类继承;如果相互访问的public类分布在不同包内,则需要分别导入相应的public类所在的包;main()方法必须是public,接口变量通常隐式声明为public static final,接口方法默认的访问权限是public。protected可以修饰变量、方法、构造方法、方法成员、数据成员、内部类,不能修饰外部类、接口、接口的成员变量和成员方法;当子类和基类在同一包内时,同一包内的任何类可以访问protected变量、方法、构造方法,基类protected成员在同一个包内都是可见的,而且对子类也是可见;当子类和基类不在同一个包内时,子类的实例可以访问从基类继承的protected方法,但是不能访问基类的实例protected方法。private可以修饰变量、方法、构造方法,不能修饰类和接口;private只在同一个类可见,外部类只能通过类的public方法访问privated变量。子类的父类public方法必须也是public,子类的父类protected方法只能是public或protected,父类的private方法不能被继承。
Java非访问修饰符有static、final、abstract、synchronized、transient、volatile。static可以修饰类变量和类方法;static修饰的类变量为静态变量,静态变量是独立于对象而存在的变量,静态变量只能是类变量;当类实例化单个或多个对象时,类的静态变量只有一份拷贝;静态方法是独立于对象而存在的方法,静态方法不能引用非静态变量,静态方法从参数列表获取数据。final修饰的实例变量必须显式指定初值,子类可以继承父类的final方法,但是不能重载父类的final方法;final类不能被继承,没有类可以继承final类的任何特性。abstract类不能实例化对象,abstract类的唯一目的是方便对类进行扩充,一个类不能同时被abstract和final修饰,abstract类可以包含抽象方法和非抽象方法,abstract类可以不包含抽象方法,如果一个类包含了抽象方法,那么这个类必须是abstract类;抽象方法的具体实现由子类提供,抽象方法本身没有任何实现,抽象方法不能是final或static,任何继承了abstract类的非abstract类子类必须实现父类的所有抽象方法;抽象方法的声明必须以分号结尾。synchronized可以被访问修饰符修饰,synchronized方法同一时间只能被一个线程访问。transient用来预处理类和变量的数据类型,transient修饰的变量不会持久;当序列化的对象包含transient变量时,Java虚拟机跳过此变量。volatile是一种轻量级的同步机制,用于保持内存可见性和禁止指令重排序;volatile变量是共享变量,编译和运行的时候对volatile变量的操作不会和其它内存操作一起重排序,volatile变量不会被缓存在寄存器或对其它CPU核不可见的位置;volatile变量每次被线程访问时,都强制从共享内存中重新读取变量值,而且当volatile变量发生变化时会强制线程将新值写回共享内存,在任一时刻不同线程的volatile变量始终是同一个值,所有线程都能访问共享内存的最新状态;volatile变量每次读取前必须先从主内存刷新最新值,每次写入后必须立即同步写回主内存,volatile变量的read、load、use动作必须连续出现,assign、store、write动作必须连续出现;volatile变量被访问时不会执行加锁操作,因此不会使执行线程阻塞。
*****************************************************************************************************/

class JavaModifier
{
   private static int counting = 0;

   protected static int getCounting()
   {
        return counting;
   }

   private static void addCounting() {
        counting++;
   }

   public static void main(String[] args)
   {
        System.out.println("当前计数:" + JavaModifier.getCounting());

        for (int i = 0; i < 1000; ++i)
        {
            JavaModifier.addCounting();
        }

        System.out.println("当前计数:" + JavaModifier.getCounting());
    }
}

使用特权

评论回复
真爱有你|  楼主 | 2021-6-9 14:42 | 显示全部楼层
本帖最后由 真爱有你 于 2021-7-12 10:20 编辑

/*****************************************************************************************************
Java运算符:
1505760c89e84ec163.jpg
*****************************************************************************************************/

class JavaOper
{
    public static void main(String[] args)
    {
        int a = 1;
        System.out.println("a=" + a);

        int b = a++;
        System.out.println("a=" + a + "," + "b=" + b);

        int c = ++b;
        System.out.println("a=" + a + "," + "b=" + b + "," + "c=" + c);

        int d = c--;
        System.out.println("a=" + a + "," + "b=" + b + "," + "c=" + c + "," + "d=" + d);

        int e = --d;
        System.out.println("a=" + a + "," + "b=" + b + "," + "c=" + c + "," + "d=" + d + "," + "e=" + e);

        System.out.println("(" + a + "+" + b + "-" + c + ")*" + d + "/" + e + "=" + (a + b - c) * d / e);

        System.out.println(a + "==" + b + " = " + (a == b));
        System.out.println(a + "!=" + b + " = " + (a != b));
        System.out.println(a + ">" + b + " = " + (a > b));
        System.out.println(a + "<" + b + " = " + (a < b));
        System.out.println(a + ">=" + b + " = " + (a >= b));
        System.out.println(a + "<=" + b + " = " + (a <= b));

        System.out.println(a + "&" + b + " = " + (a & b));
        System.out.println(b + "|" + c + " = " + (b | c));
        System.out.println(c + "^" + d + " = " + (c ^ d));
        System.out.println("~" + e + " = " + (~e));

        System.out.println(a + "<<" + "1" + " = " + (a << 1));
        System.out.println("?" + ">>" + "1" + " = " + (a++ >> 1));
        System.out.println("?" + ">>>" + "1" + " = " + (++a >>> 1));
        System.out.println(a + "<=" + 10 + "且" + a + "<" + 9 + "为" + ((a <= 10) && (++a < 10)));
        System.out.println("a=" + ((a <= 10) ? a : ++a));
    }
}

使用特权

评论回复
真爱有你|  楼主 | 2021-6-15 17:48 | 显示全部楼层
本帖最后由 真爱有你 于 2021-6-30 16:14 编辑

class JavaLoop
{
    public static void main(String[] args)
    {
        int[] X = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
        char[] Y = {'J', 'a', 'v', 'a'};

        for(int i: X)
        {
            if(i == 10)
            {
                for(char j: Y)
                {
                    if(j == 'a')
                    {
                        continue;
                    }

                    System.out.println(j);
                }

                break;
            }

            System.out.println(i);
        }

        System.out.println("Java循环结束");
    }
}

使用特权

评论回复
真爱有你|  楼主 | 2021-6-30 15:49 | 显示全部楼层
本帖最后由 真爱有你 于 2021-9-3 10:36 编辑

/*****************************************************************************************************
2249360dd22fc84216.png
*****************************************************************************************************/

import java.util.*;

class JavaMultiClass
{
    public static Byte x = 1;
    public static Double y = 0.1123581321345589, z = x / y;
    public static Integer Unicode = 0x2661;
    public static Character Alpha = '$', Beta = '¥';
    public static String Alphas = Alpha.toString(), Betas = Beta.toString(), Strings;
    public static StringBuffer Biden = new StringBuffer("ABCDEFG");

    public static void NumberValue()
    {
        System.out.println(z.byteValue());                                      // 将Number对象z的值转换为byte类型
        System.out.println(x.doubleValue());                                    // 将Number对象x的值转换为double类型
        System.out.println(x.floatValue());                                     // 将Number对象x的值转换为float类型
        System.out.println(x.intValue());                                       // 将Number对象x的值转换为int类型
        System.out.println(x.longValue());                                      // 将Number对象x的值转换为long类型
        System.out.println(x.shortValue());                                     // 将Number对象x的值转换为short类型

        for(int i=2; i<=36; i++)
        {
            int First = Integer.parseInt("10", i);                              // 2~36
            int Second = Integer.parseInt("100", i);                            // 2~36的平方
            int Third = Integer.parseInt("1000", i);                            // 2~36的立方

            //System.out.println(Integer.valueOf(Integer.toString((--i), 10))); // 程序进入无限循环
            System.out.println(Integer.valueOf(Integer.toString(i - 1, 10)));
            System.out.println(First + "、" + Second + "、" + Third);
        }
    }

    public static void CharValue()
    {
        char[] Characters = {0};
        int[] Diagrams = {0x4DC0, 0x4DC1, 0x4DC2, 0x4DC3, 0x4DC4, 0x4DC5, 0x4DC6, 0x4DC7,
                        0x4DC8, 0x4DC9, 0x4DCA, 0x4DCB, 0x4DCC, 0x4DCD, 0x4DCE, 0x4DCF,
                        0x4DD0, 0x4DD1, 0x4DD2, 0x4DD3, 0x4DD4, 0x4DD5, 0x4DD6, 0x4DD7,
                        0x4DD8, 0x4DD9, 0x4DDA, 0x4DDB, 0x4DDC, 0x4DDD, 0x4DDE, 0x4DDF,
                        0x4DE0, 0x4DE1, 0x4DE2, 0x4DE3, 0x4DE4, 0x4DE5, 0x4DE6, 0x4DE7,
                        0x4DE8, 0x4DE9, 0x4DEA, 0x4DEB, 0x4DEC, 0x4DED, 0x4DEE, 0x4DEF,
                        0x4DF0, 0x4DF1, 0x4DF2, 0x4DF3, 0x4DF4, 0x4DF5, 0x4DF6, 0x4DF7,
                        0x4DF8, 0x4DF9, 0x4DFA, 0x4DFB, 0x4DFC, 0x4DFD, 0x4DFE, 0x4DFF};

        for(int i=0; i<=63; i++)
        {
            System.out.println(Character.toChars(Diagrams[ i ]));               // 将字符编码转换为字符
        }

        Character.toChars(Unicode, Characters, 0);
        System.out.println(Characters);

        System.out.println(Alpha.equals(Beta));
        System.out.println(Alpha.compareTo(Beta));
        System.out.println(Character.compare(Beta, Alpha));
        System.out.println(Character.isLetter(Alpha));
        System.out.println(Character.isDigit(Beta));
        System.out.println(Character.isWhitespace(' '));
        System.out.println(Character.isUpperCase('A'));
        System.out.println(Character.isLowerCase('b'));
        System.out.println(Character.toUpperCase('A'));
        System.out.println(Character.toLowerCase('b'));
    }

    public static void StringValue()
    {
        char[] Values = {'J', 'a', 'v', 'a', '在', '线', '编', '程'};
        //System.out.println(Values.length);
        Strings = Strings.copyValueOf(Values, 0, (Values.length - 1));
        List<String> Symbol = new LinkedList<>();

        Symbol.add("阿伏伽德罗常数");
        Symbol.add("6.02214179E+23");
        Strings.getChars(1,Strings.length(),Values, 2);
        //System.out.println(Strings);
        System.out.println(Values);
        System.out.println(String.join(":", Symbol));
        System.out.println(Strings.charAt(0));
        System.out.println(Strings.contains("Java"));
        System.out.println(Strings.endsWith("Java"));
        System.out.println(Strings.equals("Java在线编程"));
        System.out.println(Strings.equalsIgnoreCase("JAVA在线编程"));
        System.out.println(Strings.hashCode());
        System.out.println(Strings.indexOf("Java", 0));
        System.out.println(Strings.intern());
        System.out.println(Strings.lastIndexOf("Java", Strings.length()));
        System.out.println(Strings.matches("[^\\s]+$"));

        System.out.println(Alphas.compareTo(Betas));
        System.out.println(Alphas.compareToIgnoreCase(Betas));
        System.out.println(Alphas.concat(Betas));
        System.out.println(Alphas.contentEquals(Biden));
    }

    public static void FirstOrderCal()
    {
        Double r = Math.random(), temp = 1 / r;
        int i = temp.intValue();

        System.out.println(Math.E);
        System.out.println(Math.PI);
        System.out.println(Math.exp(r));
        System.out.println(Math.expm1(r));
        System.out.println(Math.log1p(r));
        System.out.println(Math.nextDown(r));
        System.out.println(Math.nextUp(r));
        System.out.println(Math.rint(r));
        System.out.println(Math.round(r));
        System.out.println(Math.ulp(r));
        System.out.println(Math.scalb(r, i));
        System.out.println(Math.atan2(r, y));
        System.out.println(Math.hypot(r, y));
        System.out.println(Math.pow(r, y));
        System.out.println(Math.max(r, y));
        System.out.println(Math.min(r, y));
    }

    public static void SecondOrderCal()
    {
        System.out.println(y + "的正弦等于:" + Math.sin(y));
        System.out.println(y + "的余弦等于:" + Math.cos(y));
        System.out.println(y + "的正切等于:" + Math.tan(y));
        System.out.println(y + "的余切等于:" + 1/(Math.tan(y)));
        System.out.println(y + "的反正弦等于:" + Math.asin(y));
        System.out.println(y + "的反余弦等于:" + Math.acos(y));
        System.out.println(y + "的反正切等于:" + Math.atan(y));
        System.out.println(y + "的双曲正弦等于:" + Math.sinh(y));
        System.out.println(y + "的双曲余弦等于:" + Math.cosh(y));
        System.out.println(y + "的双曲正切等于:" + Math.tanh(y));
        System.out.println(y + "转换为角度等于:" + Math.toDegrees(y));
        System.out.println(y + "转换为弧度等于:" + Math.toRadians(y));

        System.out.println(y + "的绝对值等于:" + Math.abs(y));
        System.out.println(y + "的平方根等于:" + Math.sqrt(y));
        System.out.println(y + "的立方根等于:" + Math.cbrt(y));
        System.out.println(y + "的自然对数等于:" + Math.log(y));
        System.out.println(y + "的常用对数等于:" + Math.log10(y));
        System.out.println("大于等于" + y + "的最小整数为:" + Math.ceil(y));
        System.out.println("小于等于" + y + "的最大整数为:" + Math.floor(y));
    }

    public static void main (String[] args)
    {
        NumberValue();
        CharValue();
        StringValue();
        FirstOrderCal();
        SecondOrderCal();
    }
}

使用特权

评论回复
真爱有你|  楼主 | 2021-7-1 10:04 | 显示全部楼层
//import java.io.*;
import java.util.*;

class JavaObject
{
    public static class ObjectiveVariable
    {
        int ObjectiveVariableValue;
        
        public ObjectiveVariable(String name)
        {
            System.out.println("Java变量名是:" + name);
        }
        
        public void setObjectiveValue(int InitialValue)
        {
            ObjectiveVariableValue = InitialValue;
        }
        
        public int getObjectiveValue()
        {
            System.out.println("Java变量值是:" + ObjectiveVariableValue);
            return ObjectiveVariableValue;
        }
    }
   
    /* Java泛型:类 */
    public static class JavaGenericClass<T>
    {
        private T t;
   
        public void addValue(T t)
        {
            this.t = t;
        }
   
        public T getValue()
        {
            return t;
        }
    }
   
    /* Java泛型:方法 */
    public static <GenericType> void DisplayOutput(GenericType[] DataInput)
    {
        for(GenericType element: DataInput)
        {
            System.out.printf("%s   ", element);
        }
        System.out.println();
    }

    /* Java泛型中的有界类型参数 */
    public static <BoundType extends Comparable<BoundType>> BoundType Maximum(BoundType x, BoundType y, BoundType z)
    {
        BoundType max = x;
        if(y.compareTo(max) > 0)
        {
            max = y;
        }
        if(z.compareTo(max) > 0)
        {
            max = z;
        }

        return max;
    }

    /* Java泛型中的类型通配符:类型通配符通常利用?代替具体的类型参数,例如List<?>是List<String>等所有List<具体类型实参>的逻辑父类 */
    public static void GenericMatch(List<?> data)
    {
        System.out.println("Java泛型中的类型通配符测试: " + data.get(0));
    }

    public static void BoundGenericMatch(List<? extends Number> data)
    {
        System.out.println("Java泛型中的有界类型通配符测试: " + data.get(0));
    }

    public static void main (String[] args)
    {
        ObjectiveVariable Java = new ObjectiveVariable("真爱有你");                             // 创建对象
        Java.setObjectiveValue(1);                                                              // 对象赋值
        Java.getObjectiveValue();                                                               // 获取对象值
        System.out.println("Java成员变量访问测试:" + Java.ObjectiveVariableValue + "\r\n");    // 访问成员变量
        
        Integer[] ArrayInt = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
        Double[] ArrayDouble = {3.14, 3.141, 3.1415, 3.14159, 3.141592, 3.1415926, 3.14159265, 3.141592653, 3.1415926535};
        Character[] ArrayChar = {'M', 'i', 'c', 'r', 'o', 's', 'o', 'f', 't'};
        //Character[] ArrayChar = "Microsoft".toCharArray();

        System.out.println("所有整型数组元素为:");
        DisplayOutput(ArrayInt);
        System.out.println("\r");

        System.out.println("所有双精度数组元素为:");
        DisplayOutput(ArrayDouble);
        System.out.println("\r");

        System.out.println("所有字符数组元素为:");
        DisplayOutput(ArrayChar);
        System.out.println("\r");

        System.out.printf("%d、%d和%d中最大的为%d\r\n", 3, 4, 5, Maximum(3, 4, 5));
        System.out.printf("%f、%f和%f中最大的为%f\r\n", 3.14, 3.141, 3.1415, Maximum(3.14, 3.141, 3.1415));
        System.out.printf("%s、%s和%s中最大的为%s\r\n\n", "Apple", "Google", "Microsoft", Maximum("Apple", "Google", "Microsoft"));

        JavaGenericClass<Integer> integerClass = new JavaGenericClass<Integer>();
        JavaGenericClass<String> stringClass = new JavaGenericClass<String>();

        integerClass.addValue(new Integer(10));
        stringClass.addValue(new String("Microsoft"));

        System.out.printf("%d为整型数值\r\n", integerClass.getValue());
        System.out.printf("%s为字符串\r\n\n", stringClass.getValue());

        List<String> name = new ArrayList<String>();
        List<Integer> age = new ArrayList<Integer>();
        List<Number> number = new ArrayList<Number>();

        name.add("真爱有你");
        age.add(1998);
        number.add(100);

        GenericMatch(name);
        GenericMatch(age);
        GenericMatch(number);

        BoundGenericMatch(age);
        BoundGenericMatch(number);
    }
}

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

156

帖子

1

粉丝