zoukankan      html  css  js  c++  java
  • 匿名对象 内部类 包 访问修饰符 代码块

    匿名对象:创建对象时,只有创建语句,没有把地址赋给某个变量

    格式:new person()

    只能使用一次,可以作为返回值 形参使用

    package com.oracle.Demo03;
    
    public class Person {
         private String name;
         private int age;
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
        public boolean compare(Person p){
            return this.age==p.age;
        }
        //匿名对象作为返回值传递
        public Person getPerson(){
            return new Person();
        }
    }
    package com.oracle.Demo03;
    
    public class Test {
         public static void main(String[] args) {
             //有名对象
            Person p = new Person();
            p.setName("zhangsan");
            p.setAge(18);
            //匿名对象 只能调用一次
            new Person().setName("aaa");
            new Person().getName();//null
            //匿名对象作为形参传递
            p.compare(new Person());
            
        }
    }

    内部类:将类写在其它类的内部,可以是成员位置(成员内部类)也可以是局部位置(局部内部类)

    汽车类包含发动机类这种情况就可以使用内部类

    成员内部类

    格式   public class Car{

                         private String color;

                         class gulu{

                     }

    }

    访问方式   外部类名.内部类名 变量名 = new 外部类名().new 内部类名();

    package com.oracle.Demo03;
    
    public class Car {
         private String color = "红色";
         int num = 0;//Car.this.num
         //内部类(可以访问外部类的成员)
         public class Fadongji{
             int num = 3;//this.num
             public void show(){
                 int num = 6;//num
                 System.out.println(color);
             }
         }
    }
    package com.oracle.Demo03;
    
    public class Demo {
        public static void main(String[] args) {
            //内部类访问
            Car.Fadongji cf = new Car().new Fadongji();
            cf.show();
            //局部内部类访问
            Audo a =new Audo();
            a.show();
        }
    }

    局部内部类

    格式   public class Car{

                       private String color;

                       public void show(){

                               class gulu{

                                      public void run(){

                                                  }

                                           }

                        gulu g = new gulu();

                        g.run();

                                     }

    }

    访问方式:在定义内部类的成员方法中,新建一个对象,用对象去调用方法,最后 Car c = new Car(); c.show;调用局部内部类的方法

    package com.oracle.Demo03;
    
    public class Audo {
        //局部内部类
        public void show(){
            class gulu{
                public void method(){
                    System.out.println("这是咕噜的方法");
                }
            }
            gulu g = new gulu();
            g.method();
        }
    }
    package com.oracle.Demo03;
    
    public class Demo {
        public static void main(String[] args) {
            //内部类访问
            Car.Fadongji cf = new Car().new Fadongji();
            cf.show();
            //局部内部类访问
            Audo a =new Audo();
            a.show();
        }
    }

    匿名内部类:创建的是某一指定类型的子类 定义后即刻创建

    格式:new 父类接口(){

    重写方法 因为现在创建的是子类;

    }

    package com.oracle.Demo03;
    
    public interface Jidu {
        public abstract void run();
    }
    package com.oracle.Demo03;
    
    public class JiduDemo {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            //匿名内部类的使用
            new Jidu(){
                public void run(){
                    System.out.println("Jidugou");
                }
            }.run();
        }
    
    }

    文件夹

    格式:package  包名.包名.包名...;

    必须在有效代码的第一行

    访问包里面的类:包名.包名...类名;

    导包:import

    访问修饰符

    public :本类   同一包(子类和无关类)  不同包的子类  不同包的无关类

    protected:本类  同一包(子类和无关类)  不同包的子类

    default---什么也不写的时候:本类  同一包(子类和无关类)

    private:本类

    java文件中只能有一个public类,并且文件名要和类名一致

    代码块以{}划定边界,类和方法都是以代码块的方式划定边界的

    构造代码块:{} 在成员变量的位置  建一个对象,执行一次

    静态代码块:static{} 在成员变量的位置  在第一次建对象时执行一次 最先执行

    局部代码块定义在方法和语句中 调用多次

     

  • 相关阅读:
    CSU1312:榜单(模拟)
    uvalive 2326
    TOJ 2732存钱计划(三)(单源最短路)
    CSU1315:全场最水题之陈兴老师与比赛
    【图像处理】最临近插值和双线性内插值算法实现比较
    TOJ3744(Transportation Costs)
    汉语-词语:莝夫
    汉语-词语:臬司
    汉语-词语:幕宾
    汉语-词语:能力
  • 原文地址:https://www.cnblogs.com/yelena-niu/p/9072714.html
Copyright © 2011-2022 走看看