JavaSE基础——方法参数类型及返回值类型问题、权限修饰符、内部类、匿名内部类
JAVA学习day10 JavaSE基础——权限修饰符、内部类、匿名内部类
1. 类名、接口名作为方法参数和返回值类型
● 类名和抽象类名作为方法参数类型和返回值类型
● 接口名作为方法参数类型和返回值类型
代码演示:
public class Test {public static void main(String[] args) {Student student= new Student("欧成", 22);getStu(student);getFit(new Run());Fitness fitness = jP();fitness.exercise();}//抽象类名作为参数类型public static void getStu(Person person){System.out.println(person.name+" "+person.age);}//抽象类名作为返回值类型public static Person showPerson(){Person p = new Person("小明", 21) {@Overridepublic void show() {}};return p;}//接口作为参数类型public static void getFit(Fitness fitness){fitness.exercise();}//接口作为返回值类型public static Fitness jP(){Run run = new Run();return run;}
}
abstract class Person{String name;int age;public Person(String name, int age){this.name = name;this.age = age;}public abstract void show();
}
class Student extends Person{public Student(String name, int age) {super(name, age);}@Overridepublic void show() {System.out.println(name+" "+age);}
}
interface Fitness{public abstract void exercise();
}
class Run implements Fitness{@Overridepublic void exercise() {System.out.println("run");}
}
2. 权限修饰符
本类 | 同一个包下(子类、无关类) | 不同包下(子类) | 不同包下(无关类) | |
---|---|---|---|---|
private | Y | N | N | N |
默认 | Y | Y | N | N |
protected | Y | Y | Y | N |
public | Y | Y | Y | Y |
Y表示可访问,N表示不能访问。
3.内部类
a. 内部类就是把类定义在别的类里面,这个类就是内部类。
b. 内部类的访问特点:内部类可以访问外部类的所有成员,包括私有的;外部类要访问内部类的成员就要创建对象。
c. 内部类的分类:定义在类中的称为成员内部类;定义在类中方法内的称为局部内部类。
d. 在别的类访问内部类格式:外部类名.内部类名 对象名 = new 外部类名().new内部类名();
代码演示:
package com.westos.demo2;class Outer {int num = 30;public void show(){System.out.println(num);}class Inner{int num = 20;public void show(){int num = 10;System.out.println(num);System.out.println(Inner.this.num);Outer.this.show();}}
}
class Test{public static void main(String[] args) {Outer.Inner oi = new Outer().new Inner();oi.show();Outer outer = new Outer();outer.show();}
}
执行结果:
4. 匿名内部类
● 匿名内部类就是简化的局部内部类。
● 前提:存在一个接口或类(具体类抽象类都可以)。
● 格式:new 接口名或类名(){ 重写方法 };
● 匿名内部类的本质就是接口或类的子类匿名对象。
匿名内部类的应用:
package com.westos.demo3;public interface Lakers {public abstract void play();
}class Person{public void method(){Lakers lakers = new Lakers() {@Overridepublic void play() {System.out.println("打篮球");}};lakers.play();}
}
class Test{public static void main(String[] args) {Person person = new Person();person.method();}
}
JavaSE基础——方法参数类型及返回值类型问题、权限修饰符、内部类、匿名内部类相关推荐
- Java学习第十二天----方法参数类型以及返回值类型问题、链式编程、package包、权限修饰符、内部类、成员内部类
Java学习第十二天----方法参数类型以及返回值类型问题.链式编程.package包.权限修饰符.内部类.成员内部类 1.方法参数类型: (1)类名作为形式参数: public class MyTe ...
- 9.Java面向对象-方法参数类型及返回值类型、权限修饰符、内部类、匿名内部类
9.Java面向对象-方法参数类型及返回值类型.权限修饰符.内部类.匿名内部类 一.类名作为形式参数 A:案例演示: 类名作为形式参数当你以后看到一个方法的形参要一个 类 类型,你就传递一个该类的对象 ...
- 7 类与对象,方法和函数的定义和使用,返回值,权限修饰符 public default protected private(重点)
文章目录 1 面向对象 1 面向对象概述 2 类与对象 2.1 概述 2.2 Java中类的定义万物皆对象. 2.3Java中对象的定义和使用 3 方法和函数的定义和使用 3.1 什么是方法,函数 3 ...
- python参数类型限定_python限定方法参数类型、返回值类型、变量类型等|python3教程|python入门|python教程...
https://www.xin3721.com/eschool/python.html typing模块的作用 自python3.5开始,PEP484为python引入了类型注解(type hints ...
- python限定方法参数类型、返回值类型、变量类型
typing模块的作用 自python3.5开始,PEP484为python引入了类型注解(type hints) 类型检查,防止运行时出现参数和返回值类型.变量类型不符合. 作为开发文档附加说明,方 ...
- python限定方法参数类型、返回值类型、变量类型等
typing模块的作用 自python3.5开始,PEP484为python引入了类型注解(type hints) 类型检查,防止运行时出现参数和返回值类型.变量类型不符合. 作为开发文档附加说明,方 ...
- Java基础(10)接口、方法的参数类型以及返回值类型、权限修饰符
1.接口 1. 接口的由来:为了体现事物功能的扩展性,Java通过接口来定义这些额外的扩展功能.但是并不给出具体实现,需要类来重写 2. 接口的特点 (1)定义接口:interface 定义格式:in ...
- python函数定义参数类型和返回值类型
python中我们也可以定义函数的参数类型和返回值类型,如下代码 #函数参数和返回值的类型声明,python函数类型的声明,更加有意义,更加实用一些 def add(a,b):''':param a: ...
- JAVA面向对象:相关基础知识(带包编译--权限修饰符--内部类)
目录 1.带包编译 2.权限修饰符 3.内部类 1.带包编译 解决使用notepad++ 等文本编辑器编写的java类中如果需要 package 的解决方案: 手动式:手动建包,.java文件放在包外 ...
- python调用自定义函数返回值的类型_生成dll文件以及python对DLL中函数的调用(参数类型以及返回值)...
工具:VS2010 python2.7 (若使用的python是64位的,生成的dll也要使用x64) 系统:win7pro 64bit 首先,dll工程的创建以及dll文件的生成: new p ...
最新文章
- 中国地图_铜板画地图铜地球仪高档办公室装饰用品定制铜版画地图中国地图世界地图定制惠风堂铜雕艺术...
- Android学习第一书
- centos7编译PGSQL9.6并配置UUID
- Matlab求方差,均值,均方差,协方差的函数
- CAS(compareAndSwap)原理
- python安装失败如何卸载干净_彻底卸载Python环境及安装的Python模块
- 内存首地址为1000h_C++虚继承,菱形继承,内存分布
- 检测到python编程环境中存在多个版本_linux下多个python版本怎么管理?
- java 504错误怎么解决_求助java.lang.NoClassDefFoundError怎么解决,报错信息如下
- 【笑话】骂人的最高境界
- vbs 中调用shell.application 简单函数
- myeclipse注册机,自己生成注册码
- 架构师必备!英特尔携手Science联袂推出“架构师成长计划”,来自阿里云、AWS、百度、顺丰、平安等头部大厂专家分享实战经验...
- 信息管理与信息系统毕业论文选题?
- 传诺基亚将和微软合作生产WP7手机
- 京东数据分析SQL面试题
- 华为手机天气小工具误删/移除/丢失/不见了怎么办?
- 【DP专题】——洛谷P5144蜈蚣
- 数通 | 静态路由表的配置(含负载分担、路由备份)
- 树莓派无线中继的实现