匿名对象,封装,构造代码块、静态代码块、内部类、匿名内部类

匿名对象:没有引用类型变量指向的对象就称为匿名对象。

匿名对象的主要作用:简化书写

匿名对象主要用于两种应用场景:

  1.如果一个对象的方法只会调用一次的时候,然后该对象就不再使用了,这时候就可以使用匿名对象

  2.作为参数传递

封装的步骤:

  1.私有化要封装的属性

  2.根据需求提供对应的get或set方法

封装的好处:

  1.提高了数据的安全性

  2.操作简单

  3.隐藏了实现

封装一定会用上的场景:如果是实体类的属性,在开发过程中,全部都会封装起来

构造代码块:创建一个对象的时候,给对象进行统一的初始化工作

  应用场景:创建任意对象的时候都必须调用某个方法对该对象进行初始化时,就可以使用构造代码块

静态代码块:是静态代码块所属的类被加载到内存的时候执行的

静态代码块的应用场景:以后主要用于一个项目的初始化工作

  比如:从配置文件中读取数据库的用户名与密码

instanceof 判断制定的对象是否属于某种类别

instanceof 使用前提:判断的对象与类别必须存在继承或者实现的关系

instanceof 使用格式:

  对象 instanceof 类别

有多态才可能使用到instanceof关键字

主要应用场景:数据类型强转之前的判断

抽象类的应用场景:

  描述一类事物的时候,如果该类事物确实存在某种行为,但是目前这种行为的是不具体的这时候就可以把这种行为描述成抽象的行为,这时候使用抽象。(提高工作效率和约束行为)

  抽象类在现实开发类的应用场景:将相同的方法写到抽象类中

父类私有的成员不能被继承

继承的问题:隐式继承(私有东西被继承下来,被称为隐式继承,不能直接访问,可以访问get/set方法)

多态:父类的引用类型变量指向了子类的对象,或者是接口的引用类型变量指向接口实现类的对象

应用:

  1.多态用于时参的时候,可以接受更多类型的参数

  2.多态用于返回值类型的时候可以返回更多类型的参数

内部类:

  内部类的好处:内部类可以直接访问外部类的成员

迭代器作用:主要用来获取集合中的元素

  如果迭代器在类中,则可以直接访问,如果迭代器在类的外部,则首先要链接到那个对象,才可能访问到集合里面的元素。

匿名对象:没有引用类型变量指向的对象就称为匿名对象

匿名内部类:没有类名的类

匿名内部类的使用前提:必须存在继承或者实现关系

因为匿名内部类没有类名,所以创建匿名内部类对象的时候,所以创建的时候就要借助于他父类的名字或者父类接口的名字,但是匿名内部类只不过是没有类名,其他的一概成员都是具备的

匿名内部类的应用场景:实参的传递

  

时间: 2024-10-23 06:29:04

匿名对象,封装,构造代码块、静态代码块、内部类、匿名内部类的相关文章

面试趣闻之java 代码块 静态代码块 构造方法 执行顺序

初级程序员总会遇到这样的问题,代码块 静态代码块 构造方法 执行顺序 父类 public class ClassSup { public ClassSup(){ System.out.println("父类构造器"); } static { System.out.println("父类静态代码块"); } { System.out.println("父类代码块"); } public void mathod01(){ System.out.pri

2.24 Java基础总结 ①访问权限②static③静态方法④实例初始化块⑤静态初始化块

①访问权限②static③静态方法④实例初始化块⑤静态初始化块一.访问权限 默认是同包protected是有关系的,即同包和不同包的子类private只有本类,public全部   本类   同包 不同包       子类 非子类 子类 非子类 private √         默认(同包) √ √ √     protected √ √ √ √   public √ √ √ √ √ 二.static静态成员变量,类级别,全类共享一个Person.country = "中国":一般用

子父类 构造代码块 静态代码块 初始化过程

1 class Fu{ 2 Fu(){//调用show方法 被子类重写 num=0; 3 System.out.println("Fu constructor....."); 4 show();//实际是子类方法//zi..show 0 5 } 6 static{ 7 8 System.out.println("fu静态代码块"); 9 } 10 { 11 System.out.println("FU构造代码块"); 12 } 13 void

【code block】局部代码块+构造代码块+静态代码块

1.局部代码块 位置:位于类的方法中 表示方法:{} 作用:控制变量的生命周期,减少内存消耗 demo: public class LocalCode { public static void main(String [] args){ int y = 10; { int x = 20; System.out.println(x); } System.out.println(y);//运行到此时x变量已被垃圾收集 } } 2.构造代码块 位置:位于类中 表示方法:{} 作用:用于给每个对象进行初

构造代码块/局部代码块/静态代码块

构造代码块 直接在类中定义且没有加static关键字的代码块称为{}构造代码; 作用:给对象统一初始化数据 例子:随处可见: Test test = new Test(6); 局部代码块 典型例子:while/ for循环 静态代码块 典型例子:单例设计模式中,喜欢用这个作为控制外界进行创建新实例的反面例子(因为只要调用基类里面的方法,这个静态代码块都要被调用,加了private也毫无意义)! private static Singleton instance = new Singleton()

Java 代码块,普通代码块,构造代码块,静态代码块

学习Java中… 刚刚学到了Java的代码块,虽然很简单 还是记下吧! 左音 2016-03-16 ----------------- // 执行优先级:静态代码块 > mian方法 > 构造代码块 > 构造方法 // 静态代码块不论是否实例化都会执行一次,不会重复执行 // 构造代码块实例化时执行 1.普通代码块 // 普通代码块在方法或语句中 1 public class CodeBlock { 2 3 public static void main (String[] args)

Java--普通代码块静态代码块执行顺序

1 class B { 2 3 public B() { 4 super(); 5 System.out.println("构造器B"); 6 } 7 { 8 System.out.println("普通的代码块B"); 9 } 10 static{ 11 System.out.println("静态代码块B"); 12 } 13 14 } 15 public class ClassA extends B { 16 17 public Class

java 成员变量 静态变量代码块 静态代码快加载顺序

序言 基类A 类B继承实现了A类 1在new B一个实例时首先要进行类的装载.(类只有在使用New调用创建的时候才会被java类装载器装入)2,在装载类时,先装载父类A,再装载子类B3,装载父类A后,完成静态动作(包括静态代码和变量,它们的级别是相同的,安装代码中出现的顺序初始化)4,装载子类B后,完成静态动作类装载完成,开始进行实例化1,在实例化子类B时,先要实例化父类A2,实例化父类A时,先成员实例化(非静态代码)3,父类A的构造方法4,子类B的成员实例化(非静态代码)5,子类B的构造方法

匿名对象,内部类,包的声明与访问,访问修饰符,代码块,java的API equals toString方法整理

匿名对象  匿名对象是指创建对象时,只有创建对象的语句,却没有把对象地址值赋值给某个变量. public class Person{ public void eat(){ System.out.println(); } }创建一个普通对象person p=new person();创建一个匿名对象new person(); 匿名对象的特点: 1创建匿名对象直接使用,没有变量名. new Person().eat() //eat方法被一个没有名字的Person对象调用了. 2,匿名对象在没有指定其