MyException - 我的异常网
当前位置:我的异常网» 人工智能 » 一个Main Class,加固java基础

一个Main Class,加固java基础

www.MyException.Cn  网友分享于:2013-11-09  浏览:4次
一个Main Class,巩固java基础
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;


public class SubClassMain extends BaseClass implements IInterface{
/*
* 一个java文件中可以有多个pulbic class
*/
public class InnerClass{

}
static class StaticInnerClass{

}
    /*
     * main方法也可以被重载哦
     */
    public static void main(String[] args,int k){
   
    //return 0;
    }
public static void main(String[] args) {

  StringBuffer z = new StringBuffer("a");
  StringBuffer y = new StringBuffer("be");
  /*
   * 对象当做参数传入外部方法时,属于对象引用,方法内对值得修改
   * 一直会影响这个对象
   */
  methodA(z,y);
  System.out.println(z+","+y);
  IInterface ii = new SubClassMain();
  BaseClass a = new SubClassMain();
  SubClassMain d = new SubClassMain();
 
  /*
   * 同一个类中,基类和接口可以使用相同的属性名和方法名,但调用只能声明以接口或者基类调用
   * 否则具有二义性,造成语法错误
   */
  System.out.println("ii.x:"+ii.x+",a.x:"+a.x);

  /*
   * 接口可以作为实现类数组的引用
   * 当数组被实例化时,不需要声明数组大小,否则语法错位
   * IInterface ab[] = new IInterface[2]{new SubClassMain(),new SubClassMain()};
   */
  IInterface ab[] = new IInterface[]{new SubClassMain(),new SubClassMain()};
  int iii = ab[1].FS;
  /*
   *ab[1].FS = 5; //写法错误。final类型不能被重新赋值
   */
  System.out.println("IInterface.FS:"+IInterface.FS+",iii:"+iii);
  /*
   * 首先调用子类重写的方法,找不到则调用基类的方法
   */
  System.out.println("a.ff:"+a.ff(2));
  NormalClass c = new NormalClass();
  gg(c);
  gg(c);
  gg(c);
  /*
   * 静态方法修改的是全局的变量,每次操作都叠加有效
   */
  System.out.println("cx:"+c.x);
  String s = "me";
  /*
   * String 作为参数是值引用,final型
   */
  ss(s);
  System.out.println("s:"+s);
 
  c.ff(0);
  /*
   * String 作为参数是值引用,final型
   */
      d.ee(s);
      System.out.println("s:"+s);
      List lst = new ArrayList();
      lst.add("ddd");
      lst.add("ddd");
      lst.add(new NormalClass());
      /*
       * List 可以插入重复的值,并保持顺序
       * List 默认的toString()方法,格式为[ddd, ddd, CC@4a604a60]
       */
      System.out.println(lst);
      /*
       * 此声明合法,为十六进制和八进制的整形
       */
      int i = 0xFFFFFFF1;
      int j = 034;
      System.out.println("i:"+i+"~i:"+~i+",j:"+j);
     
      /*
       * 声明float数据,必须以f结尾
       */
      float fl = 3.2f;
      /*
       * byte,short,int,long,char
       * float,double,
       * boolean 数据基本数据类型
       */
      long l = -3;
      short o = -3;
      int in = -4;
      byte bb = -3;
      /*
       * 这样也行,奇怪!
       */
      char ch ='4',ch2 = 4;
     
      Float flo = new Float(3.2f);
      Double dou = new Double(flo);
      /*
       * true,false,ture
       */
      System.out.println(flo==fl);
      System.out.println(flo.equals(dou));
      System.out.println(flo.equals(fl));
     
      try{
      System.out.println("d.mm:"+d.mm());
      d.tt();
      /*
       * thorw 之后的方法不再被执行
       */
      System.out.println("tt not run");
      }
      /*
       *异常要么被捕获要么被抛出,二者必选其一
       */
      catch (IOException e) {
      System.out.println("IOexception");
      }catch (Exception e) {
//已经被子类捕获的异常,在catch父类中不会被执行
      System.out.println("exception");
      }
      finally{
      /*
       * finally语句在return之前执行
       */
      l=4;
      System.out.println("ttf");
      }
      /*
       * 内部类的声明方法
       */
      InnerClass IC = d.new InnerClass();
      /*
       * 静态内部类的声明方式
       */
      StaticInnerClass ss = new SubClassMain.StaticInnerClass();
}

static StringBuffer methodA(StringBuffer s1, StringBuffer s2) {
  return s1.append(s2);
}


/*
*方法名相同,参数列表不同,返回值类型不同,是允许的
*重写方法的范围不能缩小为private
*/
public void ff(int f,int t) {
//return 1;
}
public int ff(int f) {
return f;
}
public static void gg(NormalClass c){
c.x++;
}
public static void ss(String s){
s = "changed by ss";
}
public void ee(String s){
s = "changed by ee";
}
public void tt() throws IOException{
throw new IOException();
}
public short mm() {
double d = 4.3334444444d;
//double类型,不能被隐式转为short型。只能显示地转型
short ss = (short)d;
return ss;
}


}

interface IInterface{
//接口的属性全部(默认)为static final型
public int x = 1;
public int FS = 4;
}
abstract class BaseClass{
public int x ;
/*
* 不同参数类型的同名方法属于重载。
* 如果返回值类型也不相同不属于重载,但此时不能有相同的参数列表,
* 否则java无法确认你要调用哪个方法
*/
public void ff(){}
public int ff(int x){ return 0;}
}
class NormalClass{
public int x = 3;
boolean bb =false;
public void ff(){}
public int ff(int x){
  /*
   * 在外部时,内部类的声明方式:需要外部内引用
   */
  SubClassMain.InnerClass IC = new SubClassMain().new InnerClass();
  SubClassMain.StaticInnerClass ss = new SubClassMain.StaticInnerClass();
   /*
   * 赋给bb什么值,则"bb=true"返回什么值,如果bb是int类型,则语法错误。
   */
if(bb=true){
System.out.println("bb:"+bb);
}
return 0;
}
}

文章评论

聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
如何成为一名黑客
如何成为一名黑客
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
程序员都该阅读的书
程序员都该阅读的书
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
中美印日四国程序员比较
中美印日四国程序员比较
每天工作4小时的程序员
每天工作4小时的程序员
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
老程序员的下场
老程序员的下场
10个调试和排错的小建议
10个调试和排错的小建议
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
我是如何打败拖延症的
我是如何打败拖延症的
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
我的丈夫是个程序员
我的丈夫是个程序员
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
编程语言是女人
编程语言是女人
一个程序员的时间管理
一个程序员的时间管理
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
Java程序员必看电影
Java程序员必看电影
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
代码女神横空出世
代码女神横空出世
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
漫画:程序员的工作
漫画:程序员的工作
程序员和编码员之间的区别
程序员和编码员之间的区别
那些争议最大的编程观点
那些争议最大的编程观点
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
总结2014中国互联网十大段子
总结2014中国互联网十大段子
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
 程序员的样子
程序员的样子
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
鲜为人知的编程真相
鲜为人知的编程真相
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
程序员必看的十大电影
程序员必看的十大电影
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有