首页 > 其他分享 >2023/7/2

2023/7/2

时间:2023-07-02 17:56:30浏览次数:35  
标签:类型转换 System 2023 println 父类 public out

今天学习了两种类型转换,首先是向上转型,就是用父类的对象来引用子类,这种转型是安全的,注意父类的对象不能访问子类中的属性和方法。然后是向下转型,这种转型是不安全的,父类对象不能直接赋值给子类对象,要实现向下转型需要借助强制类型转换: 子类类型 子类对象=(子类类型) 父类对象。

package 类型转换;

public class 父类 {
    int num=4;
    public void show()
    {
            System.out.println(2);
    }
}
package 类型转换;

public class 向上类型转换 extends 父类{
    int java=3;
    public static void main(String[] args)
    {
        父类 a=new 向上类型转换();//父类类型的对象可以引用子类类型的对象
        System.out.println(a.num);
        a.show();
        //a.show2();
        //System.out.println(a.java);父类的对象无法调用子类的属性或者方法
    }
    public void show2()
    {
            System.out.println(5);
    }
}
package 类型转换;

public class 父类 {
    int num=4;
    public void show()
    {
            System.out.println(2);
    }
}
package 类型转换;

public class 向下类型转换 extends 父类{
    public static void main(String[] args)
    {
        //向下类型转换 a=new 父类();报错
        /*
        父类 a=new 向下类型转换();
        向下类型转换 b=(向下类型转换)a;
        */
        //
        /*
         * 子类类型 子类对象=(子类类型) 父类对象
         */
        父类 a=new 父类();
        向下类型转换 b=(向下类型转换)a;//编译虽然没问题,但是控制台还是会提示错误信息
        b.show();
    }
    void show2()
    {
        System.out.println("子类");
    }

}

然后就是instanceof关键字,这是判断父类对象是否为子类对象的实例的关键字

package 判断对象类型;

public class jipengdaole {

}
package 判断对象类型;

public class kemuyi {

}
package 判断对象类型;

public class kemuer extends kemuyi{

}
package 判断对象类型;

public class inOf {
    public static void main(String[] args)
    {
        kemuyi a=new kemuer();
        kemuer b=new kemuer();
        kemuyi c=new kemuyi();
        System.out.println(a instanceof kemuyi);
        System.out.println(a instanceof kemuer);//前类对象是后类的一个实例,支持向上兼容,所以都是true
        System.out.println(b instanceof kemuyi);
        System.out.println(c instanceof kemuer);//类向下不兼容所以为false
        //用于判断父类对象是否为子类对象的实例,也可以判断该对象是否属于一个类
        //System.out.println(a instanceof jipengdaole);没有继承关系不能用instance关键字进行比较
    }
}
package 判断对象类型;

public class bird {

}
package 判断对象类型;

public class chicken extends bird{
    public static void main(String[] args)
    {
        chicken a=new chicken();
        System.out.println(a instanceof bird);//鸡可以作为bird的实例所以为true
    }
}

 

最后是方法的重载,和C++一样,重载是根据参数的类型和个数来调用不同的同名方法

package 方法重载;
import java.util.Scanner;
public class clothes {
    public static void main(String[] args)
    {
        Scanner sc=new Scanner(System.in);
        int a=sc.nextInt();
        if(a<2)//控制台,通过传递不同的参数来调用不同的函数
        {
            pay(1.0);
        }
        else pay(a);
    }
    static void pay(int x)
    {
        Scanner sc=new Scanner(System.in);
        double a=0;
        while(x!=0)//判断是否输入完成
        {
            System.out.println("请输入衣服的单价:");
            double b=sc.nextDouble();
            a+=(b*0.8);
            x--;
        }
        System.out.printf("总价为:%.2f\n",a);
    }
    static void pay(double x)
    {
        System.out.println("请输入衣服的单价:");
        Scanner sc=new Scanner(System.in);
        double a=sc.nextDouble();
        System.out.printf("总价为:%.2f\n",a);
    }
}
package 方法重载;
import java.util.Scanner;
public class daxiaoxie {
    public static void main(String[] args)
    {
        System.out.println("请输入一个在65~90间的数:");
        Scanner sc=new Scanner(System.in);
        int a=sc.nextInt();
        char b;
        b=print(a);
        print(b);
    }
    static char print(int a)//输入大写并传递小写
    {
        char b=(char)a;
        System.out.println(b);
        return (char)(a+32);
    }
    static void print(char a)
    {
        System.out.println(a);
    }
}

 

标签:类型转换,System,2023,println,父类,public,out
From: https://www.cnblogs.com/zhenaifen/p/17521091.html

相关文章

  • 2023.26 工程化思维
    工程化思维是一种解决问题和实现目标的思考方式,它强调系统性、结构化和分析性。工程化思维要求人们以科学的方法去分析问题、评估方案,并采取有序、可衡量的步骤来实现目标。在技术领域,工程化思维尤为重要,因为它有助于提高工作效率和项目的成功率。这周在处理一个项目问题时意识到......
  • C/C++订餐管理系统[2023-07-02]
    C/C++订餐管理系统[2023-07-02]1、订餐管理系统要求实现饭店的订餐信息管理,包括菜单管理、订单管理、统计分析。实现菜单信息(菜号、菜名、价格、成本)的增删改查,实现订单管理(订单号、就餐人数、下单时间、订单总价、订单包含的所有菜品(菜号、数量))。系统功能包括以下方......
  • Excel基础_2023/7/2
    典型函数=SUM()=AVERAGE()=IF(条件,命令1,命令2)相对引用(默认),绝对引用(加$在对应行/列)单元格统计函数COUNTCOUNTACOUNTBLANKCOUNTIF(区域,要记录的标准)/COUNTIFS推荐对不熟的函数使用参数面板。比较符号:><>=<=<>文本查找-通配符:?代表一个字,*代表有内容(但被两个......
  • Excel基础_2023/7/1
    清洗数据网上爬取时,选择合适区域再excel处理,用PowerQuery可以:更改筛选标题、筛选合适项、删除异常项,然后导入新表格区域。简单改变单元格格式关于边框,可以调整颜色,也可以设置网格线(打印时网格线则需另选)可通过格式-其他格式进行设置有符号、颜色选项'+内容可使内容变文......
  • Excel基础_2023/6/30
    快速填充、提取、组合ctrl+enter(按规律/选中区域-原位填充)注意数据连续对齐快速可视化、分析条件格式,有色阶等比例显示迷你图三维地球录入数据输入操作从一开始就tab横行,则可enter直接转跳下一行首列(shift+tab可返回修改同行数据,不改路径。修改路径后,可重新由合适行tab......
  • Excel入门_2023/6/30
    常见用途整理记录(美化、简化)数据计算、分析数据展现难点问题数据量、计算效率、价值赋予、组织协作学习目标学习核心功能,解放学习思路,做到举一反三。学习方法  ......
  • 2023.7.2
    学习java类中的方法方法的声明:权限修饰符 返回值类型 方法名(形参列表){方法体}方法的说明:关于权限修饰符:Java规定的4种权限修饰符:private、public、缺省、protected如果方法有返回值,则必须在方法声明时,指定返回值的类型。同时,方法中,需要使用return关键字来返回指定类型的......
  • 【软考备战·希赛网每日一练】2023年4月10日
    题目及解析来源:2023年04月10日软件设计师每日一练一、今日成绩二、错题总结第一题解析:本题属于专业英语,大体了解意思即可。题目大意:第二题解析:本题属于操作系统的部分的内容,还没有学到,属于蒙对。三、知识查缺事务的持久性:一旦事务成功提交,即使数据库崩溃,其对数据库的更新操作也永......
  • solidworks 20230702
    1.6.1节,18页,步骤16的代码:openSolidWorks.Interop.sldworksletmain(swApp:ISldWorks)=letswModel=swApp.ActiveDoc|>unbox<ModelDoc2>letboolstatus=swModel.Extension.SelectByID2("前视基准面","PLANE&......
  • 「解题报告」2023.7.1 洛谷7月月赛
    『XYGOIround1』三个数题目描述MX有一个有\((w-2)\)个数的集合\(S=\{3,4,5,\cdots,w\}\)。要求构造一个只包含非负整数的集合(无重复元素),使得\(S\)里面的任何一个数都能被这个集合里面大于等于\(3\)个不同的数相加得到,求这个集合中至少包含多少个元素。输入格式本题......