【面向对象】类、封装、this、方法、方法的重载


 

创建类

public class 类名{
    1.成员变量(属性)
    2.成员方法(行为)
}

例如

public class Phone {
 
    String brand;
    double price;
 
    public void call() //行为
    {
        System.out.println("手机在打电话");
    }
    public void playgame() //行为
    
        System.out.println("手机在玩游戏");
    }
}

 

 引用类

public class Phone_test {
    public static void main(String[] args) {

        Phone p=new Phone(); //定义一个Phone类的变量p

        p.brand = "小米"; //为成员变量赋值
        p.price = 2999; //

        System.out.println(p.brand);
        System.out.println(p.price);

        p.call(); //调用行为
        p.playgame();
    }
}

 

 总结


 

封装


 

private

在成员变量前加private,此变量只能在本类使用,如想在其他类使用:

赋值要用set,打印获取用get

setAge:给成员变量age进行赋值,可通过set对输入进行设置条件
getAge:对外提供成员变量age的值

    private int age;
    private String name;
    private double height;
    private double weight;

 先设置set

public void setAge(int a) //set:赋值
    {
        if(a>=18&&a<=50)
        {
           age=a;
        }else
        {
            System.out.println("年龄都输不对什么脑瘫");
        }
    }

再设置get

public int getAge()//get:获取
    {
        return  age;
    }

在其他类中调用

C.setAge(18);
System.out.println("年龄:"+C.getAge());

 

 总结


 

this关键字

对变量起名需要做到见名知意,会出现变量名重复的情况,此时系统会进行就近原则,优先使用距离最近那个变量的值, 如果想要使用成员变量的值就需要使用this关键字来标明

未使用this,此时输出结果为0,因为成员变量默认初值为0

public void setAge(int age) //set:赋值
    {
        if(age>=18&&age<=50)
        {
           age=age;
        }else
        {
            System.out.println("年龄都输不对什么脑瘫");
        }
    }

 使用this关键字,输出结果为正常值,this.代表成员变量的值

public void setAge(int age) //set:赋值
    {
        if(age>=18&&age<=50)
        {
           this.age=age;
        }else
        {
            System.out.println("年龄都输不对什么脑瘫");
        }
    }

所以,this可以区分成员变量和局部变量 


 

总结

 


 

方法

构造方法

常规创建一个方法时为空参,值为系统自动初始化,例如int初始化为0,get后也为0,想要使用get获取需要先使用set进行赋值

public GirlFriend() {
    }
public void setAge(int age) //set:赋值
    {
        if(age>=18&&age<=50)
        {
           this.age=age;
        }else
        {
            System.out.println("年龄都输不对什么脑瘫");
        }
    }
public class TestGirlFriend {
    public static final GirlFriend C = new GirlFriend();

    public static void main(String[] args) {

        C.setName("俄洛伊");
        C.setAge(18);

        System.out.println("姓名:"+C.getName());
        System.out.println("年龄:"+C.getAge());
    }
}

但是我们可以创建一个带参方法

public GirlFriend(String name,int age)
    {
        this.name=name;
        this.age=age;
    }

 直接赋值调用

public static void main(String[] args) {

        GirlFriend e =new GirlFriend("张三",19);

        System.out.println(e.getName());
        System.out.println(e.getAge());
    }

 建议在任何时候都写上带空参和带参数的方法,因为虽然直接写有参方法简单便捷,但是没有无参灵活,假如需要键盘录入赋值,我们事先并不知道数值,没法使用有参构造,这时需要无参构造


 

方法的重载

可以创建多个同名,但形参不同的方法

public GirlFriend(String name,int age)
    {
        this.name=name;
        this.age=age;
    }
    public GirlFriend(int age)
    {
        this.age=age;
    }

 系统会根据输入的数据自动选择相应的方法

public static void main(String[] args) {
        
        GirlFriend e=new GirlFriend("ZZ",14);
        GirlFriend a=new GirlFriend(14);
    }

 

总结


 

 标准的JavaBean类

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值