zoukankan      html  css  js  c++  java
  • java-05 面向对象

    class StudentDemo {
        String name;
        int age;
        String address;
        
        public void study(){
            System.out.println("学生爱学习");
        }
        public void eat(){
            System.out.println("吃饭");
        }
        public void add(){
            System.out.println(address);
        }
    
    }
    
    class Student {
        
        public static void main(String[] args) {
            StudentDemo student = new StudentDemo();
            student.address = "厦门";
            student.eat();
            student.add();
            
        
        }
        
    }

    ####################方法的形势参数调用################

    /*
        形式参数的问题:
            基本类型:形式参数的改变不影响实际参数
            引用类型:形式参数的改变直接影响实际参数
    */
    //形式参数是基本类型
    class Demo {
        public int sum(int a,int b) {
            return a + b;
        }
    }
    
    //形式参数是引用类型
    class Student {
        public void show() {
            System.out.println("我爱学习");
        }
    }
    
    class StudentDemo {
        //如果你看到了一个方法的形式参数是一个类类型(引用类型),这里其实需要的是该类的对象。
        public void method(Student s) { //调用的时候,把main方法中的s的地址传递到了这里 Student s = new Student();
            s.show();
        }
    }
    
    class ArgsTest {
        public static void main(String[] args) {
            //形式参数是基本类型的调用
            Demo d = new Demo();
            int result = d.sum(10,20);
            System.out.println("result:"+result);
            System.out.println("--------------");
            
            //形式参数是引用类型的调用
            //需求:我要调用StudentDemo类中的method()方法
            StudentDemo sd = new StudentDemo();
            //创建学生对象
            Student s = new Student();
            sd.method(s); //把s的地址给到了这里
        }
    }

    #############匿名对象###################

    /*
     * 匿名对象就是没有名字的对象
       //匿名对象的使用场景:
        1.调用方法,仅仅只调用一次的时候
     */
    public class NoName {
        public static void main(String[] args) {
            Dtudent s = new Dtudent();
            s.show();
            System.out.println(s);
            s.show();
            System.out.println(s);
            
            //new Dtudent().show();
            System.out.println(new Dtudent());
            //new Dtudent().show();
            System.out.println(new Dtudent());
            
        }
    }
    
    class Dtudent{
        public void show(){
            System.out.println("i love study!!!");
        }
    }

    结果:

    i love study!!!
    Dtudent@6d06d69c
    i love study!!!
    Dtudent@6d06d69c
    Dtudent@7852e922
    Dtudent@4e25154f

     

    ################封装############3

    /*
        private:
            是一个权限修饰符
            可以修饰成员变量和成员方法
            被其修饰的成员只能在本类中被访问
    */
    class Demo {
        //int num = 10;
        //用private修饰
        private int num = 10;
        
        public void show() {
            System.out.println(num);
        }
        
        private void method() {
            System.out.println("method");
        }
        
        public void function() {
            method();
        }
    }
    
    class PrivateDemo {
        public static void main(String[] args) {
            Demo d = new Demo();
            //不能方法私有的成员变量
            //System.out.println(d.num);
            d.show();
            //不能访问私有的成员方法
            //d.method();
            d.function();
        }
    }

    /*
        封装和private的应用:
            A:把成员变量用private修饰
            B:提高对应的getXxx()和setXxx()方法
    */
    //定义学生类
    class Student {
        //姓名
        private String name;
        //年龄
        private int age;
        
        //姓名获取值
        public String getName() {
            return name;
        }
        
        //姓名设置值
        public void setName(String n) {
            name = n;
        }
        
        //年龄获取值
        public int getAge() {
            return age;
        }
        
        //年龄赋值
        public void setAge(int a) {
            age = a;
        }
    }
    
    //测试类
    class StudentTest {
        public static void main(String[] args) {
            //创建学生对象
            Student s = new Student();
            
            //使用成员变量
            //错误:被私有修饰了,外界不能直接访问了
            //System.out.println(s.name+"---"+s.age);
            System.out.println(s.getName()+"---"+s.getAge());
            
            //给成员变量赋值
            //s.name = "林青霞";
            //s.age = 27;
            //通过方法给赋值
            s.setName("林青霞");
            s.setAge(27);
            System.out.println(s.getName()+"---"+s.getAge());
        }
    }

    #################构造方法###################

  • 相关阅读:
    基于 MySQL 5.6 keepalived的双主搭建
    keepalived.conf 配置文件小结
    keepalived小结
    能不能利用复制报错,让从库停在同一个复制的位置上?
    复制介绍、复制的实用价值
    复制相关参数学习笔记--master上的参数
    计数排序
    双向链表
    约瑟夫问题
    单链表中重复元素的删除
  • 原文地址:https://www.cnblogs.com/shanhua-fu/p/8776772.html
Copyright © 2011-2022 走看看