java中同一个包下的两个类含有多个重名的方法,有的需要互相调用,有的只能调用本类的,该如何实现?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中同一个包下的两个类含有多个重名的方法,有的需要互相调用,有的只能调用本类的,该如何实现?相关的知识,希望对你有一定的参考价值。
比如:java工程下,同一个package下有类A和类B,类A含有方法x(),y(), 类B含有方法x(),y(),z(). 其中重名的方法x()的方法体不同,参数列表相同。并且,两个类里面都有主函数。现在:我在类A中,声明一个对象a,用对象a.x()调用的方法到底调的是A中的,还是B中的呢?该如何控制去调用类A和类B的方法呢?
1、private修饰词,表示成员是私有的,只有自身可以访问;2、protected,表示受保护权限,体现在继承,即子类可以访问父类受保护成员,同时相同包内的其他类也可以访问protected成员。
3、无修饰词(默认),表示包访问权限(friendly, java语言中是没有friendly这个修饰符的,这样称呼应该是来源于c++ ),同一个包内可以访问,访问权限是包级访问权限;
4、public修饰词,表示成员是公开的,所有其他类都可以访问; 参考技术A 在A类中,如果你要调用A的x方法用this.x(),要调用B类的方法用new B().x()或B b=new B() 用b.x()调用 参考技术B 建议你去看看方法的重写和重载,我不知道你的这两个类是否有继承关系 所以不好回答!
java中时间类型转换
在java中有六大时间类,分别是:
1、java.util包下的Date类,
2、java.sql包下的Date类,
3、java.text包下的DateFormat类,(抽象类)
4、java.text包下的SimpleDateFormat类,
5、java.util包下的Calendar类,(抽象类)
6、java.sql包下的Time类,
7、java.sql包下的TimeStamp类。
一、java.util包下的Date类:
Date主要用来生成时间,Date有两个构造方法:Date()和Date(long date)
二、java.text包下的DateFormat类,(抽象类):
DateFormat继承自Format。
下面两个是实现的接口,两个接口无任何内容:
DateFormat是时间/日期格式化子类的抽象类,所以不能有构造方法实例化,可以用两个静态函数进行实例化。
getDateInstance()------返回的是日期
getDateTimeInstance()--------------------返回的是时间+日期。
三、java.text包下的SimpleDateFormat类:
SimpleDateFormat继承自DateFormat类,
主要功能是:完成日期之间的格式转换。
yyyy:MM:dd,HH:mm:ss:SSS(SSS是毫秒数)
四、java.util包下的Calendar类,(抽象类):
此类实例化有两种方式:
1、Calendar time=new GregorianCalendar();
2、Calendar time =Calendar.getInstance();
此类和日历相关:“YEAR”年,“MONTH”月,“DAY_OF_MONTH”日,"DAY_OF_WEEK"星期,"HOUR"小时。如:
五、java.sql包下的Date类:
只针对SQL语句使用,Date date=new Date();(也就=2017-01-01,没有时间部分)
六、java.sql包下的Time类,
七、java.sql包下的TimeStamp类。
输出结果:
输出结果:
结果:
结果:
结果:
1 package test; 2 3 import java.text.DateFormat; 4 import java.text.ParseException; 5 import java.text.SimpleDateFormat; 6 import java.util.Calendar; 7 import java.util.Date; 8 import java.util.GregorianCalendar; 9 10 public class time { 11 public static void main(String[] args) throws ParseException { 12 // 将当前日期对象转换成毫秒值 13 Date date1 = new Date(); 14 Long time1 = date1.getTime(); 15 Long time2 = System.currentTimeMillis();// 获取当前时间的毫秒值 16 Calendar cal=Calendar.getInstance(); 17 Long caltime=cal.getTimeInMillis(); 18 System.out.println("当前日期对象转换成毫秒值:" + time2+" Calendar类日期转换成毫秒值:"+caltime); 19 20 // 将毫秒值转换成日期对象 21 Date date2 = new Date(); 22 Long time3 = System.currentTimeMillis(); 23 date2.setTime(time3); 24 25 // 将日期字符串转换成日期对象 26 DateFormat df1 = new SimpleDateFormat("yyyy/MM/dd"); 27 Date date3 = df1.parse("2017/01/12"); 28 System.out.println("日期字符串转换成日期对象:" + date3); 29 30 SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); 31 Date date = df.parse("2009-06-12 02:06:37"); 32 System.out.println("日期字符串转换成日期格式:" + df.format(date)); 33 34 // 将日期对象转换成日期字符串 35 Date datetime = new Date(); 36 SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); 37 String stringtime = sdf.format(datetime); 38 System.out.println("日期对象转换成日期字符串:" + stringtime); 39 40 Date date4 = new Date(); 41 DateFormat df41 = DateFormat.getDateInstance(DateFormat.LONG); 42 DateFormat df42 = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG); 43 String time4 = df41.format(date4); 44 String time5 = df42.format(date4); 45 System.out.println("getDateInstance时间:" + time4 + " getDateTimeInstance时间:" + time5); 46 47 Date d = new Date(); 48 DateFormat df43 = DateFormat.getDateInstance(DateFormat.FULL); 49 DateFormat df44 = DateFormat.getDateInstance(DateFormat.SHORT); 50 DateFormat df45 = DateFormat.getDateInstance(DateFormat.MEDIUM); 51 String time43 = df43.format(d); 52 String time44 = df44.format(d); 53 String time45 = df45.format(d); 54 System.out.println("FULL类型时间:" + time43); 55 System.out.println("SHORT类型时间:" + time44); 56 System.out.println("MEDIUM类型时间:" + time45); 57 58 // 日历 59 Calendar time = Calendar.getInstance(); 60 int year = time.get(Calendar.YEAR); 61 int month = time.get(Calendar.MONTH); 62 int day = time.get(Calendar.DAY_OF_MONTH); 63 int week = time.get(Calendar.DAY_OF_WEEK); 64 int hour = time.get(Calendar.HOUR); 65 System.out.println("当前时间是:" + year + "年" + month + "月" + day + "日,星期" + week + "," + hour + "点"); 66 } 67 }
1 当前日期对象转换成毫秒值:1504089815431 Calendar类日期转换成毫秒值:1504089815441 2 日期字符串转换成日期对象:Thu Jan 12 00:00:00 CST 2017 3 日期字符串转换成日期格式:2009-06-12 02:06:37 4 日期对象转换成日期字符串:2017/08/30 5 getDateInstance时间:2017年8月30日 getDateTimeInstance时间:2017年8月30日 下午06时43分35秒 6 FULL类型时间:2017年8月30日 星期三 7 SHORT类型时间:17-8-30 8 MEDIUM类型时间:2017-8-30 9 当前时间是:2017年7月30日,星期4,6点
以上是关于java中同一个包下的两个类含有多个重名的方法,有的需要互相调用,有的只能调用本类的,该如何实现?的主要内容,如果未能解决你的问题,请参考以下文章
start from the beginning-JAVA(接口多态)