zoukankan      html  css  js  c++  java
  • 七、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());
        }
    
    }
  • 相关阅读:
    一万字详解 Redis Cluster Gossip 协议
    Java使用多线程异步执行批量更新操作
    闲鱼是如何实践一套完整的埋点自动化验证方案的?
    OSS 阿里云存储操作实例以及错误案例
    OSS 阿里云存储操作实例以及错误案例
    Java知识体系总结(2021版)
    倪文迪陪你学蓝桥杯2021寒假每日一题:1.11日(2017省赛A第9题)
    七分之一在线评论都有假,人工智能救一把?
    太委屈!曾一举击败英伟达,却因坚持研发背负骂名的国际 IT 大佬
    SpringBoot四大核心之自动装配——源码解析
  • 原文地址:https://www.cnblogs.com/chushujin/p/10048371.html
Copyright © 2011-2022 走看看