七、Java基础之对象

一、面向对象:

/*
1.面向对象可分为三个阶段:
OOA:面向对象的分析
OOD:面向对象的设计
OOP:面向对象的编程
2.类的定义:
Student是一个类,是一种引用类型
概念上的一个定义,现实世界中不存在
变量前面没有static的修饰,叫做成员变量
*/
public class Student {
    //属性:

    //学号
    int id;//成员变量;实例变量,非静态变量,成员变量如果没有手动赋值,系统则默认赋值
            //id是对象级别的,必须先有对象才能访问,不能使用类直接访问
    //姓名
    String name;
    //性别:
    boolean sex;
    //年龄
    int age;
    //住址
    String addr;

    //方法
}

3.对象如何创建及访问

public class ClassTest01 {
    public static void main(String[] args){
        //创建对象
        //stu1是一个局部变量,这个局部变量是Student类型,也就是一个引用类型
        //stu1称作:引用,指向内存中的一个地方引用中保存了对象在堆中的内存地址
        //通过“引用”去间接访问堆中的对象

        Student stu1=new Student();
        //new的意思是在stack中开辟一个空间,这个空间是Student类型
        //java中所有的new出来的数据统一存储在堆区中,程序员无法对堆区数据直接访问,只能通过内存地址间接访问
        //一个类可以创建多个对象
        Student stu2=new Student();
        //使用对象
        //访问成员变量,必须使用“引用.”
        //name是成员变量,对象相关,必须先有对象才能访问,必须使用“引用.”
        //System.out.println(Student.name);//error
        //读取
        System.out.println(stu1.id);//0
        System.out.println(stu1.sex);//false
        System.out.println(stu1.addr);//null
        System.out.println(stu1.age);//0
        System.out.println(stu1.name);//null

        /*
        byte,short,int,long    0
        float,double     0.0
        boolean    false
        char    \u0000
        引用数据类型    null
         */
        //赋值
        stu1.addr="北京海淀区";
        stu1.age=12;
        stu1.id=1;
        stu1.name="chu";
        stu1.sex=true;
        //
        System.out.println(stu1.id);
        System.out.println("sut1.sex="+(stu1.sex?"男":"女"));//三目运算
        System.out.println(stu1.addr);
        System.out.println(stu1.age);
        System.out.println(stu1.name);


    }

}

4.面向对象的封装性

//面向对象的封装性
//类=属性+方法
//属性来源于状态,方法来源于动作

创建Custom类
//定义一个顾客类型
/*
1.属性私有化
2.对外提供公开的setter和getter
3.setAge和getAge方法的方法名遵循规范
*/
public class Custom {
    //属性
    //成员变量,非静态变量,实例变量
    //private修饰的数据只能在本类中访问
   // private int age;
    int age;

    //对外提供两个公开的方法
    //set
    public  void setAge(int _age){
        //安全性校验
        if(_age<0 || _age>100){
            System.out.println("年龄不合法");
            return;
        }
        age=_age;
    }

    //get
    public  int getAge(){
        //不带static成员方法,实例方法,非静态方法
        //成员方法必须使用“引用.”的方式访问
        return age;
    }


}

访问:

public class ClassTest02 {
    public static void main(String[] args){
        //1.创建Custom类型对象
        Custom cus=new Custom();
        /*
        //读取
        System.out.println(cus.age);
        //3.赋值
        cus.age=1;
        //4.读取
        System.out.println(cus.age);
        */
        //赋值
        cus.setAge(-10);
        //读取
        System.out.println(cus.getAge());
    }

}

 

posted @ 2018-12-01 10:02  旅行没有终点  阅读(224)  评论(0编辑  收藏  举报