• java开发实战学习笔记2


    1.数组对象

    数组对象:数组中的元素师对象,不是基础类型的数据

    public class Demo
    {
        private  int a;
        public int getA()
        {
            return this.a;
        }
        public void setA(int a)
        {
            this.a=a;
        }
        public Demo()
        {
            this.a=10;
        }
        public void sayA()
        {
            System.out.println("a="+a);
        }
    }
    public class Test {
    
        public static void main(String[] args) {
    
            // TODO, add your application code
            Demo[] demos=new Demo[2]; //只是简单的声明,没有赋予内存空间
            for(int i=0;i<demos.length;i++)
            {
                System.out.println("demo["+i+"]="+demos[i]);
            }
            /* demos[0].sayA();
             *发生错误,错误为Exception in thread "main" java.lang.NullPointerException at Test.main(Test.java:20)
             */
            for(int i=0;i<demos.length;i++)
            {
                demos[i]=new Demo();
    
            }
            for(int i=0;i<demos.length;i++)
            {
                System.out.println("demo["+i+"].a="+demos[i].getA());
            }
        }
    }
    结果:
    demo[0]=null
    demo[1]=null
    demo[0].a=10
    demo[1].a=10

    2.内部类,外部类

    在类Outer的里面,定义一个类Inner,则类Outer称为外部类或者顶层类,类Inner称为内部类

    public class Outer {
    
        private String outerInfo="Hello,this is outerInfo";
        public class Inner{
            int a;
            public void sayA()
            {
                System.out.println("a="+this.a);
            }
            public void sayInfo()
            {
                System.out.println("outerInfo:"+outerInfo);
            }
        }
        public Outer() {
        }
        public void sayAll()
        {
            new Inner().sayA();
            new Inner().sayInfo();
        }
    }
    public class Test {
    
        public static void main(String[] args) {
    
            // TODO, add your application code
            new Outer().sayAll();
        }
    }
    结果:
    a=0
    outerInfo:Hello,this is outerInfo

    顶层类可以有public,默认访问权限。内部类可以用public,protected,default,private访问权限

    几种内部类:

    实例内部类:没有使用static修饰的内部类

    (1)在创建实例内部类的时候,外部类的实例必须已经先被创建

    Inner inner=new Outer().new Inner()

    //  Inner inner=new Outer.Inner() 一种错误创建方式

    (2)实例内部类享有对外部类的访问权限

    (3)实例内部类中不能定义静态成员。

    (4)如果实例内部类Inner与外部类Outer含有同名的成员a,则在Inner类中this.a表示Inner类中的a,Outer.this.a表示外部类的a.

    静态内部类:使用static修饰的内部类

    (1)静态内部类可以直接访问外部类的静态成员,如果要访问外部类的实例成员,则必须通过外部实例对象去访问。

    class A{
        private int a1;
        private static int a2;
        
        public static  class B
        {
            int b1=a1;  //编译错误,不能直接访问外部类的实例变量a1;
            int b2=a2;    //合法
            int b3=new A().a1;//合法,可以通过类A的实例访问变量a1
        }
    }

    (2)静态内部类中可以定义静态成员和实例成员

    (3)可以直接使用完整类名定义内部类

    局部内部类:在一个方法中定义的类

    (1)局部内部类不能用修饰符进行修饰。

    (2)局部内部类与实例内部类相识,不能在其中定义静态成员,可以访问外部成员,

    (3)局部内部类访问方法变量时,变量类型必须是final类型。

  • 相关阅读:
    Django的一点基本知识点
    python函数定义及作用域
    爬取妹子图片
    mysql常用命令大全
    python扫面端口
    python中重要的基础概念
    pexpect模块获取root密码
    mysql
    requests库
    C#中使用SQLite数据库简介(上)
  • 原文地址:https://www.cnblogs.com/limingluzhu/p/2674884.html
Copyright © 2020-2023  润新知