当前位置: 萬仟网 > IT编程>软件设计>面向对象 > 面向对象(方法参数及返回值)

面向对象(方法参数及返回值)

2020年07月27日  | 萬仟网IT编程  | 我要评论
方法参数一级返回值类型类名作为形式参数当看到一个方法的形参要一个类 类型,就传递一个该类的对象。抽象类名作为形式参数当看到一个方法的形参要一个抽象类 类型的时候,就传递一个该抽象类的子类对象。接口名作为形式参数当看到一个方法的形参要一个接口 类型,就传递一个个该接口的子类对象。类名作为返回值类型当一个方法的返回值类型是一个类类型,就返回一个该类的对象抽象类名作为返回值类型当一个方法的返回值类型是一个抽象类类型,就返回一个该抽象类的对象接口名作为返回值类型当一个方法的返回值类型是一个

方法参数一级返回值类型

类名作为形式参数

当看到一个方法的形参要一个类 类型,就传递一个该类的对象。

抽象类名作为形式参数

当看到一个方法的形参要一个抽象类 类型的时候,就传递一个该抽象类的子类对象。

接口名作为形式参数

当看到一个方法的形参要一个接口 类型,就传递一个个该接口的子类对象。

类名作为返回值类型

当一个方法的返回值类型是一个类类型,就返回一个该类的对象

抽象类名作为返回值类型

当一个方法的返回值类型是一个抽象类类型,就返回一个该抽象类的对象

接口名作为返回值类型

当一个方法的返回值类型是一个抽象类类型,就返回一个该抽象类的子类对象。

package关键字

概述:相当于就是一个文件夹

作用:用来解决同一个路径下不能存在同名文件的问题。,也就是方便分类管理。

划分:

按照功能划分,

按照模块划分

定义包的注意事项
  1. package语句必须是程序的第一条可执行的代码
  2. package语句在一个java文件中只有一个
  3. 如果没有package,默认表示无包名

import关键字

也就是导包

概述:不同包下的类之间的访问,这样我们就不需要加包的全路径,java自动导包

格式:import 包名;

权限修饰符:

本类 同一个包下(子类和无关类) 不同包下(子类) 不同包下(无关类)
private Y
默认 Y Y
protected Y Y Y
public Y Y Y Y

常见修饰符

权限修饰符:private ,默认的,protected,public

状态修饰符:static , final

抽象修饰符:abstract

修饰类的关键字:

权限修饰符:默认修饰符,public

状态修饰符:final

抽象修饰符:abstract

用的最多的就是:public

修饰成员变量的关键字:

权限修饰符:private,默认的,protected, public

状态修饰符:static final

用的最多的就是:private

修饰构造方法的关键字:

权限修饰符:private,默认的,protected, public

用的最多的就是public

修饰成员方法的关键字:

权限修饰符:private,默认的,protected, public

状态修饰符:static final

抽象修饰符:abstract

用的最多的就是:public

除此以外的组合规则:

成员变量:public static final

成员方法:public static

​ public abstract

​ public final

内部类

概述:把类定义到其他类的内部的类

将类A定义到类B中,那么这个类A就称为内部类,类B称为外部类

访问特点:

  1. 内部类可以直接访问外部类的成员,包括私有。
  2. 外部类要访问内部类的成员,必须创建对象。

内部类的分类:

按照内部类的位置分类:

在成员位置定义的类,被称为成员内部类,定义在类中方法外。

在局部位置定义的类,称为局部内部类。定义在类中方法内

在测试类直接访问内部类的成员:

格式:外部类名.内部类名 对象名 = 外部类对象.内部类对象

创建内部类的对象:

new outer().new inner()  也就是new两层。

成员内部修饰符:

成员内部类的修饰符:

private 为了保证数据的安全性

static为了访问数据

注意事项:

  1. 静态内部类访问的外部类数据必须使用静态修饰。
  2. 成员方法可以是静态的也可以是非静态的。

成员内部类被静态修饰后的访问方式是:

格式:外部类名.内部类名 对象名 = new 外部类名.内部类名();

局部内部类

  1. 可以直接访问外部类的成员
  2. 可以创建内部类对象,通过对象调用内部类方法,来使用局部内部类功能。
  3. 局部内部类访问局部变量必须用final修饰,因为局部变量会随着方法的调用完毕而消失,这个时候局部对象并没有立马从堆内存中消失,还要使用那个变量。为了让数据能够继续被使用,就用final修饰,这样在堆内存里面存储的其实是一个常量值。在jdk1.8之后,final会默认加上不用自己手动加。

匿名内部类

就是局部内部类的简化写法。

前提:存在一个或者接口,这里的类可以是具体类,也可以是抽象类

格式:new 类名或接口名(){重写方法;}

本质其实就是一个继承该类或者实现了该接口的子类匿名对象。

匿名内部类其实就是一个子类匿名对象

package com.itheima.demo;

public class PersonTest {
    public static void main(String[] args) {
        //如何调用PersonDemo中的method方法呢?
       new PersonDemo().method(new Person() {//格式:new 类名或接口名(){重写方法;}
           @Override
           public void show() {

           }
       });

    }
}

package com.itheima.demo;

abstract class Person {
		public abstract void show();
	}


package com.itheima.demo;

class PersonDemo {
		public void method(Person p) {
        p.show();
			}
		}
package com.itheima.demo;

interface Inter {
		void show(); 
	}
	
	class Outer {
		public static Inter method() {
			return new Inter() {//调用谁就返回谁。
				@Override
				public void show() {
					System.out.println("hello word");
				}
			};
		}
		//补齐代码 
		
	}
	
	class OuterDemo {
		public static void main(String[] args) {
			  Outer.method().show();
		  }
	}

类中定义接口

在一个类里面可以定义一个接口称为内部接口,内部接口可以私有,私有后外界就无法创建其子类对象。在外界可以采用内部类的方式,创建出内部接口的子类对象。

new aa.bb(){}  bb是一个接口
}

class OuterDemo {
	public static void main(String[] args) {
		  Outer.method().show();
	  }
}

### 类中定义接口

在一个类里面可以定义一个接口称为内部接口,内部接口可以私有,私有后外界就无法创建其子类对象。在外界可以采用内部类的方式,创建出内部接口的子类对象。

new aa.bb(){} bb是一个接口


本文地址:https://blog.csdn.net/qq_46466568/article/details/107585625

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
Copyright © 2017-2020  萬仟网 保留所有权利. 粤ICP备17035492号-1