Java形式参数返回值&内部类

形式参数和返回值问题
 形式参数
 基本类型:
 形式参数的改变对实际参数没有影响(String是引用类型和基本数据类型的效果一样String s ="abc")


引用类型:
          具体类:如果形式参数是一个具体类,那么需要创建该类对象
 抽象类:如果形式参数是抽象类的情况,那么需要自定义一个抽象类的子类,来进行实例化(创建对象)!,创建对象的实质:抽象类多态!
 接口:那么需要自定义一个接口的子实现类,然后通过接口多态的形式给接口进行实例化!(接口多态!
      由于接口不能实例化,需要定义接口的子实现类)


  返回值类型
基本类型

        引用类型
          具体类:直接返回该类对象(实际开发中使用的是匿名对象) 
   抽象类:返回值如果是抽象类,需要的返回是该抽象类的子类对象
 接口:返回值如果是接口类型,需要的是返回该接口的子实现类对象,通过子实现类进行实例化。

3:内部类的概述及访问特点
概念: 在一个类中定义另一个类,那么把这种情况称为内部类


内部类是直接可以访问外部类的成员,无论是局部内部类还是成员内部类(一般指非静态)包括私有

 

  外部类想要访问内部类的成员,必须通过创建内部类的对象访问该内部类的成员

 

格式:

外部类名.内部类名.对象名 = 外部类对象.内部类对象

 

class Outer{
	//外部类的成员变量
	public int num = 100 ;
	private int num = 20 ;//内部类可以访问私有外部类成员变量
	
	//内部类
	class Inner{
	//内部类的成员方法
		public void show(){
			System.out.println(num);
		}
	}
	
	//外部类的成员方法
	public void method(){
		//创建内部类对象
		Inner i = new Inner() ;
		i.show() ;
	}
}


4:内部类的分类


  成员内部类:在外部类的成员位置
  局部内部类:在外部了的局部位置定义的这个类
关系如下:

 

//外部类
class Outer2{
	//外部类的成员变量
	public int num = 100 ;
	
	//成员内部类
	class Inner2{
		
	}
	
	//外部类的成员方法
	public void method(){
		//局部位置
		class Inner2{
			
		}
	}
}


  匿名内部类是内部类的简化版格式。
  前提条件:
  必须存在一个接口或者是一个类(可以是具体类,也可以是一个抽象类)
  
  书写格式:
  new 接口名或者类名(){
  方法重写;

  }

  

 匿名内部类面试题:
按照要求,补齐代码
interface Inter { void show(); }
class Outer { //补齐代码 }
class OuterDemo {
public static void main(String[] args) {
 Outer.method().show();
 }
}
要求在控制台输出”HelloWorld”
 

/*按照要求,补齐代码
			interface Inter { void show(); }
			class Outer { //补齐代码 }
			class OuterDemo {
				public static void main(String[] args) {
					  Outer.method().show();
				  }
			}
			要求在控制台输出”HelloWorld”*/

package org.west_09_匿名内部类面试题;

interface Inter {
	public abstract void show(); 
}
class Outer { //补齐代码
	public static Inter method() {
		//返回值是一个接口
		return new Inter() {
		
			@Override
			public void show() {
				
				System.out.println("HelloWorld");
			}
		};
	}
}

class OuterDemo {
	public static void main(String[] args) {
		  Outer.method().show();
		  
		/*  method能被类名调用  说明方法是静态的(static)
		  method能调用show 说明返回一个对象*/
	  }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章