标签:
package com.Hanqi; public class t20151015s { public static void main(String[] args) { // TODO Auto-generated method stub telephone tp = new telephone("三星","1345686531"); System.out.println("我的手机品牌是: "+tp.getPinpai()+" ,号码是 " +tp.getHaoma()+" 电量 "+tp.getDianliang()); tp.steDianliang(60); tp.Call(" 13156 "); //调用静态方法 不需要实例化,直接用类名就可以调用,在实例化中也可以调用静态方法 telephone.Jinji(); telephone.morenhm = "10086"; telephone.yijianbh(); //实例方法与静态方法的区别 telephone tp2 = new telephone("华为","1345686531"); tp2.yijianbh();//静态的无论你如何去调用,都是不会变化的,都是相同的一个数 tp2.steDianliang(20); System.out.println(tp2.getPinpai()+" 剩余电量为 "+tp2.getDianliang()); tp2.Call(" 168621566 "); iphone ip = new iphone("6s","13545646135"); ip.Call("468621566"); ip.playGame("切水果"); System.out.println(ip.getClass().toString());//返回完整类名、路径 System.out.println(ip.getClass().getName()); //转换 父类转换成子类 子类转换成父类 //子类转成父类 向上转型 telephone tp1 = new iphone();//定义一个父类,将子类赋给父类,调用的还是实际的实例--子类。 tp1.Call("136546");//子类重构了父类的方法的话,就会调用子类,如果没有重构,那么将会继续调用原父类的方法 //父类向子类转 向下转型 //父类转子类,不被允许的 // iphone ip3 = tp1;//将刚才转换成父类的子类,重新赋给子类,是不被允许的 //父类向子类转,只能强制转换,并且只能强转原来由子类转换成父类的,原本就是父类转换成父类的强转是会报错的;甚至子类完全等于父类也是无法转换的 //iphone ip3 = (iphone)tp1; //ip3.playGame("546"); //向下转型之前,判断父类对象是否为子类对象 if(tp1 instanceof iphone)//如果父类对象为子类对象就会执行 { //父类向子类转 iphone ip3 = (iphone)tp1; ip3.playGame("546"); } else //如果不是,那么就会输出一句话 { System.out.println("bushi "); } String gg = new String("123"); String dd = new String("123"); if (gg.equals(dd))//判断字符串是否相等 { System.out.println("字符串相等"); } else { System.out.println("字符串不相等"); } } }
package com.Hanqi; import javax.swing.plaf.synth.SynthSeparatorUI; //电话 public class telephone { //作为父类一定要写一个空的构造方法 public telephone() { } //公共的 public ,外部访问是没有任何限制的 //私有的 private 只有在类的内部才可以访问 //保护的 protected 本包内类 其他包里无法读取到的 //如果不写权限符 默认 保护的 protected //品牌 private String pinpai; //号码 private String haoma; /* //setter方法 public void setPinpai(String pinpai) { this.pinpai = pinpai; } */ //getter方法 构造 只读属性 //private String pinpai; public String getPinpai()//读取 pinpai 的数据 { return pinpai; } //这样就可以构造出一个只读属性。无法修改! //setter 方法 可以访问类的内部 //将外部数据传输进来,进行对内部数据的修改 /* public void setHaoma(String haoma) { this.haoma = haoma; } */ public String getHaoma() { return haoma; } public telephone(String pinpai,String haoma) { this.pinpai = pinpai; this.haoma = haoma; System.out.println("品牌是"+this.pinpai+"手机号"+this.haoma); } //电量 private int dianliang = 50; //设置电量 public void steDianliang(int dianliang) { //验证输入电量值是否是正确,有效的 //将电量属性私有,再另外进行操作 比如读取、修改、判断 if(dianliang < 0) { System.out.println("电量不能为负值!"); } else if(dianliang > 100) { System.out.println("电量已满"); this.dianliang = 100; } else { this.dianliang = dianliang; } } //方法名 第一个字母大写后面的小写 //获取电量 public int getDianliang() { return dianliang; } public void Call(String dfhm) { if(dfhm.trim().length() > 0)// .trim() 去空格 .length() 字符长度 { System.out.println("拨出号码为:" + dfhm); } else { System.out.println("您输入的电话号码有误!"); } } //静态方法 public static void Jinji()// static 表示静态方法 { System.out.println("拨打紧急电话119"); } //属性也可以定义为静态 //public static String yijianbh; //静态方法之间的调用 public static String morenhm; //morenhm 不是静态的无法调用,所以要将它定义为静态的 public static void yijianbh() { System.out.println("一键拨号,拨打号码是:"+ morenhm);//静态方法无法直接调用其他方法,要调用的一定是静态方法 } //静态与实例的区别 //实例的使用时回复制一份,再使用 //静态的只是调用,没有另外一个。 //静态方法无法直接调用非静态方法,要把非静态方法转换成静态方法 //实例方法可以直接调用静态方法 }
package com.Hanqi; public class iphone extends telephone { //extends 表示两个类的继承关系 public iphone(String pinpai, String haoma) { //父类 super(pinpai, haoma); //调用父类的构造方法 // TODO Auto-generated constructor stub } public iphone() { } //自己的构造方法 public iphone (String zhanghao) { } //加入游戏 名字第一个字母小写,后续大写。 public void playGame(String gameName) { System.out.println("游戏为 "+ gameName); } //重写 public void Call(String duifanghaoma) { System.out.println("我用6S拨打了 "+ duifanghaoma); } }
标签:
原文地址:http://www.cnblogs.com/name-hanlin/p/4883779.html