Java---- 匿名对象 内部类 包 访问修饰符 构造代码块

匿名对象

  • 匿名对象是指创建对象,只有创建对象的语句,却没有把对象地址值赋值给某个变量。
    创建一个普通对象:
Person p=new person( );

创建一个匿名对象:

new Person();

匿名对象的特点:

  • 创建匿名对象直接使用,没有变量名。
  • 匿名对象在没有指定其引用变量时,只能使用一次。
  • 有名字对象,引用类型变量,可以反复使用
  • 匿名对象,没有引用变量,只能用一次
  • 匿名对象可以当参数传递
public class Person{
       public void eat( ){
            System .out.println("人在吃饭"); 
            
}
} 
 
 
 public  class Test{
             public static void main( String [ ]  args){
                           Person p=new Person ( ); 
                            p.eat ( ); 
                            new Person ( ).eat( );  
}
} 
 

内部类

  • 在一个类的内部,又定义了其他类
    1.内部类,可以使用外部类成员,包括私有。
public class Outer{
    private int a = 1; 
       class Inner{
          publivc void inner( ){
              System.out.println("内部类方法inner" +a); 
}
}
} 
 
  
         public class Test{
              public static void main(String [  ]    args){
                //通过外部类找到内部类 
                //  外部类名.内部类名  变量 = new 外部类对象( ).new 内部类对象(); 
                //变量.内部类方法( )
  Outer.Inner in new Outer( ).new Inner( ); 
  in.inner( );
}
}
   

2.成员内部类的同名变量

public  class Outer{
 int i=1;
       class Inner{ 
       int i=2;
           public  void inner( ){ 
            int i=3; 
               System.out.println(this.i);
}
}
} 
 
 

1.类中包的格式声明:

package  包名.包名......;
  • 包的声明必须在有效代码的第一行
package  cn.itcast; 
 
 import  java.util.Scanner; 
 import  java,util.Random; 

public  class Demo{ }

2.包的访问

在访问类时,为了能找到该类,必须使用含有包名的类全名

包名.包名......类名 
 
 例: java,util.Scanner 
     java.util.Random 
      
  带包的类,创建对象格式: 包名.类名  变量名 = new 包名.类名(); 
   
   cn.itcast.Demo  d = new cn.itcast.Demo( );

3.important 导包
格式:

import 包名.类名;
  • import导包代码书写的位置:在声明包package后,定义所有类class前,使用导包import包名.包名.类名;

    访问修饰符

    以下表来说明不同权限的访问能力:

public protected default private
同一类中 Y Y Y Y
同一包中 Y Y Y
不同包的子类 Y Y
不同包中的无关类 Y

归纳:在日常开发过程中,编写的类、方法、成员变量的访问

  • 要想仅能在本类中访问,使用private修饰;
  • 要想本包中的类都可以访问,不加修饰符即可;
  • 要想本包中的类与其他包中的子类可以访问,使用protected修饰
  • 要想所有包中的所有类都可以访问,使用public修饰。
  • 注意:如果类用public修饰,则类名必须与文件名相同。一个文件中只能有一个public修饰的类。

构造代码块

  • 构造代码块是定义在类中成员位置的代码块
    • 构造方法,new一次,执行一次
    • 构造代码块,new一次,执行一次,优先于构造方法
    • 静态代码块,只执行一次。
public class Test{
         public static void main(String[ ]  args){
               new  Person ("张三",20);
}
} 
 
 public class Person {
       private String name; 
        private int age; 
          public Person(String name ,int age){
              this.age = age;
              this .name=name; 
           System.out.println("我是构造方法。"); 
} 
  
     //构造代码块 (先于构造方法) 
     
 {
              System.out.println("我是构造代码块。");
} 
 
     //静态代码块(最先) 
      
{ 
                 System .out.println("我是静态代码块");
  } 
  
}
发布了43 篇原创文章 · 获赞 6 · 访问量 1562

猜你喜欢

转载自blog.csdn.net/weixin_43729631/article/details/84865318