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中同一个包下的两个类含有多个重名的方法,有的需要互相调用,有的只能调用本类的,该如何实现?的主要内容,如果未能解决你的问题,请参考以下文章

java三个类组合怎么运行

start from the beginning-JAVA(接口多态)

关于java.util包下的Random类

java 实现多个接口 方法重名的解决办法——内部类

用java编写的一个父类两个子类并且父类里含有三个成员变量五个成员方法,子类一里加两个成员方法和变量。

使用java语言,如何对一个类中的静态方法做切面编程?