• 定义类


    定义类,就是设计模板
    根据模板生产产品,根据类实例对象
    程序就是对象的操作
     
    如何定义类 ?
        修饰符 class 类名{
            //构造器
            修饰符 构造器名(参数列表){
                初始化代码;
            }
            public 类名(){
                //初始化对象
                num = 10;
                name="无名氏";
                arr = new float[]{10,20.5,6,7.8};
            }
            public 类名(int num, String name, float[] arr){
                //初始化对象,设置的方法名into
                init(num, name, arr);
                或
                this.init(num, name, arr);
            }
            //属性
            修饰符 类型 属性名;
            或
            修饰符 类型 属性名=值;
            private int num=0;
            private String name;
            private float[] arr;
     
     
            //方法
            修饰符 类型 函数名(参数列表){
                //方法的实现代码
            }
            public String toString(){
                return ...;
            }
            private void init(int num, String str, float[] arr){
                初始化代码;
            }
     
        }
     
     
     
    构造器的作用:
        用于实例化对象,初始化对象,只能使用new关键字调用
        new 构造器();
        注意:构造器名称必须与类名同名,构造器没有返回类型。
    属性的作用:
        用于保存对象的状态值,在声明属性可以显式或隐式的赋初始会值。
        如果没有显式赋初始会值,所有属性都有默认值,规则:int byte,short,long, float,double都默认为0,boolean默认为false,char编码0,其它引用类型默认为null。
        属性在外部调用:对象.属性名(允许访问:有权限)
        属性在内部调用:this.属性名或属性名(当属性名与局部变量有命名冲突时,属性表示为this.属性名,如果没有前缀就是指局部变量)
     
        注意:在类中定义的属性,实例化成对象后,每个同类型的对象都有相同的属性作为对象数据成员。
     
     
    方法的作用:   
        用于描述对象的行为,是外部访问接口.由两个部份构造:
            声明和实现
            //声明
            public String toString()
            //实现部份
            {
                return ...;
            }
        在外部调用:对象.方法名();(允许访问:有权限)
        在内部调用:this.方法名()或方法名()
     
    关于访问修饰符:
    中文描述    关键字        类的内部    同包的类    子类              不同包非子类
    公共的        public         允许        允许        允许                             允许
    受保护的    protected    允许        允许        允许                             不允许
        默认                          允许        允许        不允许(不同包的子类)    不允许
    私有的        private        允许        不允许        不允许                        不允许
    class(类) 只能用public和默认两个修饰符(内部类除外)
    class ClassA{
         //内部类
         class ClassB{
         }
    }
    构造器的修饰符:public|protected|默认|private
    属性的修饰符:public|protected|默认|private
    方法的修饰符:public|protected|默认|private
     
    例如修饰属性:   
        public int a;//公共的属性
        protected int b;//受保护的属性
        int c;            //默认权限的属性
        private int d;    //私有的属性
    包:定义的类的域名
        package    打包用的关键字
            一个类文件只能使用一次,并且必须是代码中的第一行(除注释以外)。
        import     导入包的关键字
            一个类文件可以多次使用import,使用的顺序
            一个类文件可以同时定义多个类,但只能有一个publick类,其它只能权限的类.
            package...
            import ....
            import ....
            import ....
            import ....
            public class A{
                ...
            }
            class B{
     
            }
            class C{
     
            }
     
     

    ---A.java文件---
    package x;
    public  clas A{
        public int a;//公共的属性 (都可以访问)
        protected int b;//受保护的属性 (同包或子类都可以访问)
        int c;            //默认权限的属性 (同包可以访问)
        private int d;    //私有的属性 (一个类内猜可以访问)
     
        public void fun(){//所有属性都可访问
            System.out.println(a);
            System.out.println(b);
            System.out.println(c);
            System.out.println(d);
        }
     
    }
     
    ---B.java文件---
    package x;
    public  clas B{//B类与A类同包
        public void fun(){//所有属性都可访问
            A obj = new A();
            System.out.println(obj.a);
            System.out.println(obj.b);
            System.out.println(obj.c);
            System.out.println(obj.d);//出错,不能访问
        }
    }
    ---C.java文件---
    package y;
    public  clas C{//C类与A类不同包非子类
        public void fun(){//所有属性都可访问
            A obj = new A();
            System.out.println(obj.a);
            System.out.println(obj.b);//出错,不能访问
            System.out.println(obj.c);//出错,不能访问
            System.out.println(obj.d);//出错,不能访问
        }
    }
    ---D.java文件---
    package x;
    public  clas D exdents A{//D类是A类同包的子类
        public void fun(){//所有属性都可访问
            A obj = new A();
            System.out.println(obj.a);
            System.out.println(obj.b);
            System.out.println(obj.c);
            System.out.println(obj.d);//出错,不能访问
        }
    }
    ---E.java文件---
    package y;
    public  clas E exdents A{//E类是A类的子类,但不同包
        public void fun(){//所有属性都可访问
            A obj = new A();
            System.out.println(obj.a);
            System.out.println(obj.b);
            System.out.println(obj.c);//出错,不能访问
            System.out.println(obj.d);//出错,不能访问
        }
    }
     
  • 相关阅读:
    设计算法,根据输入的学生人数和成绩建立一个单链表,并累计成绩不及格的人数。
    git的使用,看这一篇就够啦!(包含github、码云、gitlab)
    设单链表的数据为互不相等的整数,建立一个单链表,并设计一个算法,找出单链表中元素值最大 的结点。
    “Failed to get convolution algorithm. This is probably because cuDNN failed to initialize”错误的解决办法
    回文指的是一个字符串从前面读和从后面读都一 样,编写一个算法判断一个字符串是否为回文。
    怎么搭建一个5T的私有云盘
    基于大数据分析与可视化的疫情信息发布系统
    如何给oneindex网盘增加评论、密码查看、read me,头提示功能。
    解析原理:微信自动查找优惠券做返利机器人是怎么实现的
    【Swift】接入阿里云一键登录(源码,可以直接贴走)
  • 原文地址:https://www.cnblogs.com/zachary7/p/8191739.html
Copyright © 2020-2023  润新知