3、面向对象

1、面向对象三大特征
  ·封装(encapsulation)
  ·继承(inherit)
  ·多态(polymorphism)

2、成员变量和局部变量

成员变量:写在类体的里画,方法体的外面,声明时可以不进行初始化值,可以被本类或其他类的方法进行调用。
局部变量:写在方法体的里面,声明时必须进行初始化,只能在声明局部变量的方法内进行调用。

public class local_value{
    
    //基本数据类型
    byte b; //默认值 0
    short s; //默认值 0
    int i; //默认值 0
    char c; //默认值 \u000
    long l; //默认值 0
    float f; //默认值0.0
    double d; //默认值0.0
    boolean boo; //默认值 false

    //引用数据类型
    String str; //默认值 null

    public static void main(String[] args){

        local_value local = new local_value();
        System.out.println(local.b);
        System.out.println(local.s);
        System.out.println(local.i);
        System.out.println(local.c);
        System.out.println(local.l);
        System.out.println(local.f);
        System.out.println(local.d);
        System.out.println(local.boo);
        System.out.println(local.str );

    
    }
}

3、面向对象封装和private关键字

什么是封装?
封装是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
封装的优点:
  隐藏代码的实现细节,提高安全性。

class Private{

    //姓名
    private String name;
    
    //年龄
    private int age;

    //对外 提供公共的访问方式,编写set和get方法
    public void setAge(int _age){
        if (_age>0 && _age<120){
            age = _age;
        }else{
            System.out.println("年龄不符合常理,请重新设置!");
        }
    }
    public int getAge(){
        return age;
    }


    public void setName(String _name){
        name = _name;
    
    }
    public String getName(){
        return name;
    }
}

class  Private01{
    public static void main(String[] args) 
    {
        
        Private p = new Private();
        //p.age = -10; // 年龄不符合常理,不能为负数
        p.setAge(10);
        p.setName("好人"); 
        System.out.println(p.getName());
        System.out.println(p.getAge());
    }
}

4、引用传递、值传递

基本数据类型的参数传递和值传递

class transfer{
    public static void m1(int i){
        i = i + 1;
        System.out.println("m1方法中的i=" + i);//11
    
    }
    public static void main(String[] args){
        int i = 10;
        m1(i);
        System.out.println("main方法中的i=" + i);//10
    }
}

引用数据类型的参数传递,传递的引用

class transfer01 {

    private int age;

    public void setAge(int _age){
        age = _age;
    }
    public int getAge(){
        return age;
    }
}


class transfer02 {
    
    public static void m1(transfer01 a){
        int age = a.getAge();
        a.setAge(++age);
        System.out.println("m1方法中的age=" + a.getAge()); // 11
    }

    public static void main(String[] args) {
        
        transfer01 a = new transfer01();
        a.setAge(10);
        m1(a);
        System.out.println("main方法中的age=" + a.getAge()); // 11
    }
}

猜你喜欢

转载自www.cnblogs.com/zhuifeng-mayi/p/9997650.html