码迷,mamicode.com
首页 > 其他好文 > 详细

20151015----知识整理

时间:2015-10-15 23:27:01      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:

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);
    }

}

 

技术分享

20151015----知识整理

标签:

原文地址:http://www.cnblogs.com/name-hanlin/p/4883779.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!