ÈçºÎÈ¡µÄJavaÔ´´úÂëÎļþÖÐÎļþÃûºÍÐкÅ
ÈçºÎÈ¡µÄJavaÔ´´úÂëÎļþÖÐÎļþÃûºÍÐкţº£©
ÔÚC/C++µÄ³ÌÐò£¬±àÒëÆ÷ÌṩÁËÁ½¸öºêÀ´Ö§³ÖÈ¡µÃÔ´ÎļþÖеÄÐкźÍÎļþÃû£¬ÕâÁ½¸öºêÊÇ__FILE__,__LINE__
Äã¿ÉÒÔÈçÏµķ½·¨´òÓ¡ÐкźÍÎļþÃû
²é¿´Ô´´úÂë
´òÓ¡°ïÖú
1 #include <stdio.h>
2 int main()
3 {
4 fprintf(stdout,"[%s:%d] Hello World!",__FILE__,__LINE__);
5 return 0;
6 }
µ«ÊÇÔÚJAVAÏÂûÓÐÕâÁ½¸öºê£¬ÄÇôÎÒÃÇÈçºÎÀ´È¡µÃÎļþÃûºÍÐкţ¬·ÔÄJDK£¬ÎÒÃÇÕÒµ½StackTraceElementÕâ¸öÀà¡£Õâ¸öÀà¿ÉÒÔ´ÓThrowableÈ¡µÃ£¬ÁíÍâÒ²¿ÉÒÔ´ÓThreadÀàÈ¡µÃ£¬Í¨¹ýÕâЩÎÒдÈçϵÄÒ»¸ö´òÓ¡ÐкŵIJâÊÔ³ÌÐò£º
²é¿´Ô´´úÂë
´òÓ¡°ïÖú
01 public class LineNo {
02 public static int getLineNumber() {
03 return Thread.currentThread().getStackTrace()[2].getLineNumber();
04 }
05
06 public static String getFileName() {
07 return Thread.currentThread().getStackTrace()[2].getFileName();
08 }
09 public static void main(String args[]) {
10 System.out.println("["+getFileName()+"£º"+ getLineNumber()+"]"+"Hello World!");
11 }
12 }
ÁôÏÂÒ»¸öÎÊÌ⣬ÉÏÃæ³ÌÐòÖеÄmagicÊý×Ö 2 ´ú±íʲôº¬ÒåÄØ£¿
0ÊÇthread.getCurrentThread()
1ÊÇgetLineNumber()
2²ÅÊǵ÷ÓÃgetLineNumberµÄÀà
Ïà¹ØÎĵµ£º
Java×ÜÓÐËüµÄǧ°ãºÃ´¦Ê¹ÄãÑ¡ÔñËü£¬µ«ÕâÐ©Ëæ±ã··Êé»òÔÚÍøÉϹäһȦ¾ÍÄÜÕÒµ½´ð°¸¡£ÔÚ±¾ÎÄÖУ¬±ÊÕß°Ñ×Ô¼ºÑ§Ï°JavaµÄһЩÇÐÉíÌå»áºÍ¹ý³Ìд³öÀ´£¬¹©³õѧÕß×ö¸ö²Î¿¼¡£ ¡¡¡¡ÎÒÔÚѧϰJavaµÄ¹ý³ÌÖÐÖ÷ÒªÎ§ÈÆÒÔϼ¸¸ö·½ÃæÀ´Ñ§Ï°£º
¡¡¡¡1£®Ê±¿ÌÌáÐÑ×Ô¼ºJavaÊÇÒ»ÖÖOOPÓïÑÔ¹¤¾ß£¬¶ø²»½ö½öÊDZàÂ룬ֻÓÐÕâÑù²ÅÄÜ×ÜÌå°ÑÎÕºÍÔËÓÃJava¡£
¡¡¡ ......
Ò»¡¢±³¾°
×î½üÒ»Äê¶àÀ´,ÔÚInternetÉϳöÏÖµÄÌØ±ðÎüÒýÈ˵Äʼþ¾ÍÊÇJavaÓïÑÔºÍÓÃJava±àдµÄä¯ÀÀÆ÷HotJava¡£
1991Äê,SUNMicroSystem¹«Ë¾µÄJameGosling¡¢BillJoeµÈÈË,ΪÔÚµçÊÓ¡¢¿ØÖÆ¿¾Ãæ°üÏäµÈ¼ÒÓÃÏû·ÑÀàµç×Ó²úÆ·ÉϽøÐн»»¥Ê½²Ù×÷¶ø¿ª·¢ÁËÒ»¸öÃûΪOakµÄÈí¼þ(¼´Ò»ÖÖÏðÊ÷µÄÃû×Ö),µ«µ±Ê±²¢Ã»ÓÐÒýÆðÈËÃǵ ......
ͨË×Àí½âÏòÉÏתÐÍ£º
¾ÍÊÇ×ÓÀàתÐͳɸ¸Àà¡£
class A{}
class B extends A { }
A b = new B();
Õâ¸ö¾ÍÊÇÏòÉÏתÐÍ¡£
ÏòÉÏתÐÍ¿ÉÒÔÏñÏÂÃæÕâÌõÓï¾äÕâô¼òµ¥:
Shape s =new Circle();
ÕâÀ´´½¨Ò»¸öCircle¶ÔÏ ......
1, ±£Ö¤Ḭ̈߳²È«µÄÈýÖÖ·½·¨: a, ²»Òª¿çÏ̷߳ÃÎʹ²Ïí±äÁ¿b, ʹ¹²Ïí±äÁ¿ÊÇfinalÀàÐ͵Äc, ½«¹²Ïí±äÁ¿µÄ²Ù×÷¼ÓÉÏͬ²½
2, Ò»¿ªÊ¼¾Í½«ÀàÉè¼Æ³ÉḬ̈߳²È«µÄ, ±ÈÔÚºóÆÚÖØÐÂÐÞ¸´Ëü,¸üÈÝÒ×.
3, ±àд¶àÏ̳߳ÌÐò, Ê×Ïȱ£Ö¤ËüÊÇÕýÈ·µÄ, Æä´ÎÔÙ¿¼ÂÇÐÔÄÜ.
4, ÎÞ ......