【java开发】封装与继承

2.封装
把属性封起来(私有化private)
提供了一对公有(public)的方法(getter/setter)来对属性进行操作(读取和设置)
这样做以后可以对属性值的有效性进行判断,避免出现不合法的值
 
 
使用private封装后,如新建了Person类,使用private封装name,age等属性后,在main函数中new一个Person对象后,不能直接调用Person类的属性,因此,在封装后,要使用Person类的属性需要使用公有的方法public方法 get和set方法来获取属性值和改变属性值
public class Person
{
    private String name;
    private int age;
    
}
 
 
添加get和set方法
public class Person
{
    private String name;
    
    private int age;
    
    public String getName()
    {
        return name;
    }
    
    public void setName(String name)
    {
        this.name = name;
    }
    
    public int getAge()
    {
        return age;
    }
    
    public void setAge(int age)
    {
        this.age = age;
    }
    
}
在main函数中
public class Test1
{
    public static void main(String[] args)
    {
        Person p=new Person();
        p.setAge(10);
p.setName("zhangsan");
        System.out.println(p.getAge()+" "+p.getName());
    }
}
输出结果为10
即可以使用set来设置属性值,使用get方法可以获取值
 
3.构造方法
定义:与类名同名 的方法 ,没有返回值
作用:在(new)创建对象的时候,同时初始化一些一些信息,有传值的作用;同时构造函数也有有参和无参两种形式
 
public class Person
{
    private String name;
    
    private int age;
    public Person(String name,int age)
    {
        this.name=name;
        this.age=age;
    } 
}
在创建类的时候,创建构造方法,()内为传入参数
在main函数中
public class Test1
{
    public static void main(String[] args)
    {
        Person p=new Person("张三",10);
    }
}
main函数中new对象实例p的时候,因为Person类的构造函数有参数,因此在对象实例化的时候,必须要传入参数,因此 Person p=new Person("张三",10);就相当与继承中的setName()和setAge()方法将name和age设置了值,因此要打印出p的name和age属性值,要在Person类中给封装的属性添加get()方法才能获取到利用构造函数传入的属性值
 
 
是一种很特殊的函数gsan.sex='男';
用于创建对象
如果没有写构造方法,那么系统会提供一个默认无参构造方法
如果你写了构造方法,那么系统将不再提供构造方法,那么这个时候只能用你自己写的构造方法
 
 
除了封装,可以使用get和set方法来获取和改变属性值,还可用构造方法的方式。
 
上一篇:小妖精的完美游戏教室——东方PROJECT,同人,th12灵梦A


下一篇:Hadoop的namenode的管理机制,工作机制和datanode的工作原理