zoukankan      html  css  js  c++  java
  • JAVA学习--面向对象思想的落地法则

    * 面向对象思想的落地法则一:
     * 1.设计类,并设计类的成员(成员变量&成员方法)
     * 2.通过类,来创建类的对象(也称作类的实例化)
     * 3.通过“对象.属性” 或“对象.方法”来调用,完成相应的功能
     *
     * 二、创建的多个对象,彼此各自拥有一套类的属性。当对其中一个对象的属性进行修改时,
     * 不会影响到其他对象的属性值。
     *
     * 三、类的属性(成员变量)
     *   成员变量 vs 局部变量
     *   相同点:1.遵循变量声明的格式: 数据类型 变量名 = 初始化值
     *          2.都有作用域
     *   不同点:1.声明的位置的不同 :成员变量:声明在类里,方法外
     *                           局部变量:声明在方法内,方法的形参部分,代码块内
     *         2.成员变量的修饰符有四个:public private protected 缺省
     *           局部变量没有修饰符,与所在的方法修饰符相同。
     *         3.初始化值:一定会有初始化值。
     *             成员变量:如果在声明的时候,不显式的赋值,那么不同数据类型会有不同的默认初始化值。
     *            byte short int long ==>0
     *            float double ==>0.0
     *            char ==>空格
     *            boolean ==>false
     *            引用类型变量==>null
     *          局部变量:一定要显式的赋值。(局部变量没有默认初始化值)
     *         4.二者在内存中存放的位置不同:成员变量存在于堆空间中;局部变量:栈空间中
     *         
     * 总结:关于变量的分类:1)按照数据类型的不同:基本数据类型(8种)  & 引用数据类型
     *                    2)按照声明的位置的不同:成员变量 & 局部变量
     *
     * 四、类的方法:提供某种功能的实现
     *    1)实例:public void eat(){//方法体}
     *           public String getName(){}
     *           public void setName(String n){}
     *      格式:权限修饰符 返回值类型(void:无返回值/具体的返回值) 方法名(形参){}
     *      
     *    2)关于返回值类型:void:表明此方法不需要返回值
     *                   有返回值的方法:在方法的最后一定有return + 返回值类型对应的变量
     *       记忆:void 与return不可以同时出现一个方法内。像一对“冤家”。
     *
     *       3)方法内可以调用本类的其他方法或属性,但是不能在方法内再定义方法!
     *
    public class Zoo {
        public static void main(String[] args) {
            //基本数据类型的声明:数据类型 变量名 = 初始化值
            int i = 10;
            //类的实例化:如下的a1就是一个实实在在的对象
            Animal a1 = new Animal();
            //int[] arr = new int[10];
            System.out.println("name:" + a1.name + " age:" + a1.age);
            //通过对象调用属性
            a1.name = "花花";
            a1.age = 3;
            System.out.println("name:" + a1.name + " age:" + a1.age);
            //通过对象调用方法
            a1.eat();
            a1.sleep();
            
            //再创建一个类的对象
            Animal a2 = new Animal();
            System.out.println("name:" + a2.name + " age:" + a2.age);//null 0
            a2.name = "小花";
            System.out.println("name:" + a1.name + " age:" + a1.age);
            System.out.println("name:" + a2.name + " age:" + a2.age);
            
            //a3不意味着相较于a1重新创建的一个对象,而是a1与a3共用一个对象实体
            Animal a3 = a1;
            System.out.println("name:" + a3.name + " age:" + a3.age);//与a1一样
            a3.name = "维尼熊";
            System.out.println("a1:name:" + a1.name + " age:" + a1.age);
            
            System.out.println(a2.getName());//a2.name;
            System.out.println(a2.desc());
        }
    }
    
    
    class Animal{
        //1.属性
        String name;
        int age;
        
        //2.方法
        public void eat(){
            System.out.println("动物进食");
        }
        
        public void sleep(){
            System.out.println("动物休眠");
            //return;
        }
        
        public String getName(){
            return name;
        }
        public int getAge(){
            System.out.println("hello");
            return age;
            //其后不可以声明语句
            //System.out.println("hello");
        }
        //当通过对象调用此方法时,会将方法的方法的返回值提供给方法的调用者,也就是当前的对象。
        public String desc(){
            if(age > 2){
                return "恰同学少年";
            }else{
                return "还是看动画片的年龄";
            }
        }
        public void setName(String n){//n:局部变量
            name = n;
        }
        public void addAge(){
            int i = 0;//局部变量
            age += i;
        }
        public void info(){
    //        可以在方法内调用本类的其他方法,但是不可以在方法内定义新的方法
            eat();
            sleep();
    //        public void breath(){
    //            System.out.println("呼吸");
    //        }
        }
    //    System.out.println("hello!");
    }
     
  • 相关阅读:
    java学习中,instanceof 关键字 和 final 关键字、值的传递(java 学习中的小记录)
    java学习中,DVD管理系统纯代码(java 学习中的小记录)
    java学习中,static 修饰符使用、static方法、静态代码块、主函数为何如此写、单例设计模式(java 学习中的小记录)
    java学习中,匿名函数、构造方法、构造代码块、构造方法中调用构造方法(java 学习中的小记录)
    java学习中,成员变量 和 局部变量(java 学习中的小记录)
    Java 面向对象的解释 和 类与对象方法的创建使用 (Java 学习中的小记录)
    java学习中,二分法查找数组中的元素(java 学习中的小记录)
    java学习中,冒泡排序(java 学习中的小记录)
    Kotlin语法 入门篇章(1)
    gitlab
  • 原文地址:https://www.cnblogs.com/zhangfan94/p/4263253.html
Copyright © 2011-2022 走看看