您的位置:首页 > 其它

20151015----知识整理

2015-10-15 21:50 337 查看
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);
}

}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: