测试私有方法_Java基础之抽象类、接口作为方法参数和返回值
不同修饰符使用细节
常用来修饰类、方法、变量的修饰符
- public 权限修饰符,公共访问, 类,方法,成员变量
- protected 权限修饰符,受保护访问, 方法,成员变量
- 默认什么也不写 也是一种权限修饰符,默认访问, 类,方法,成员变量
- private 权限修饰符,私有访问, 方法,成员变量
- static 静态修饰符 方法,成员变量
- final 最终修饰符 类,方法,成员变量,局部变量
- abstract 抽象修饰符 类 ,方法
我们编写程序时,权限修饰符一般放于所有修饰符之前,不同的权限修饰符不能同时使用;
- 同时,abstract与private不能同时使用;
- 同时,abstract与static不能同时使用;
- 同时,abstract与final不能同时使用。
修饰类能够使用的修饰符
修饰类只能使用public、默认的、final、abstract关键字,使用最多的是 public关键字
public class Demo {} //最常用的方式class Demo2{}public final class Demo3{}public abstract class Demo4{}
修饰成员变量能够使用的修饰符
- public : 公共的
- protected : 受保护的
- : 默认的
- private :私有的
- final : 最终的
- static : 静态的
(更多干货java咨询,可关注公众号“软帝在线”)
使用最多的是 private
public int count = 100;protected int count2 = 100;int count3 = 100;private int count4 = 100; //最常用的方式public final int count5 = 100;public static int count6 = 100;
修饰构造方法能够使用的修饰符
- public : 公共的
- protected : 受保护的
- : 默认的
- private :私有的
使用最多的是 public
public Demo(){} //最常用的方式protected Demo(){}Demo(){}private Demo(){}
修饰成员方法能够使用的修饰符
- public : 公共的
- protected : 受保护的
- : 默认的
- private :私有的
- final : 最终的
- static : 静态的
- abstract : 抽象的
使用最多的是 public
public void method1(){}//最常用的方式protected void method2(){}void method3(){}private void method4(){}public final void method5(){}public static void method6(){}//最常用的方式public abstract void method7();//最常用的方式
类作为方法参数与返回值
类作为方法参数
在编写程序中,会经常碰到调用的方法要接收的是一个类类型的情况,那么这时,要向方法中传入该类的对象。如下代码演示:
class Person{ public void show(){ System.out.println("show方法执行了"); }}//测试类public class Test { public static void main(String[] args) {//创建Person对象 Person p = new Person();//调用method方法 method(p); } //定义一个方法method,用来接收一个Person对象,在方法中调用Person对象的show方法 public static void method(Person p){ p.show(); }}
类作为方法返回值
写程序调用方法时,我们以后会经常碰到返回一个类类型的返回值,那么这时,该方法要返回一个该类的对象。如下代码演示:
class Person{ public void show(){ System.out.println("show方法执行了"); }}//测试类public class Test { public static void main(String[] args) {//调用method方法,获取返回的Person对象 Person p = method();//调用p对象中的show方法 p.show(); } //定义一个方法method,用来获取一个Person对象,在方法中完成Person对象的创建 public static Person method(){ Person p = new Person(); return p; }}
抽象类作为方法参数与返回值
抽象类作为方法参数
开发中,抽象类作为方法参数的情况也很多见。当遇到方法参数为抽象类类型时,要传入一个实现抽象类所有抽象方法的子类对象。如下代码演示:
//抽象类abstract class Person{ public abstract void show();}class Student extends Person{ @Override public void show() { System.out.println("重写了show方法"); }}//测试类public class Test { public static void main(String[] args) {//通过多态的方式,创建一个Person类型的变量,而这个对象实际是Student Person p = new Student();//调用method方法 method(p); } //定义一个方法method,用来接收一个Person类型对象,在方法中调用Person对象的show方法 public static void method(Person p){//抽象类作为参数//通过p变量调用show方法,这时实际调用的是Student对象中的show方法 p.show(); }}
抽象类作为方法返回值
抽象类作为方法返回值的情况,也是有的,这时需要返回一个实现抽象类所有抽象方法的子类对象。如下代码演示:
//抽象类abstract class Person{ public abstract void show();}class Student extends Person{ @Override public void show() { System.out.println("重写了show方法"); }}//测试类public class Test { public static void main(String[] args) {//调用method方法,获取返回的Person对象 Person p = method();//通过p变量调用show方法,这时实际调用的是Student对象中的show方法 p.show(); } //定义一个方法method,用来获取一个Person对象,在方法中完成Person对象的创建 public static Person method(){ Person p = new Student(); return p; }}
接口作为方法参数与返回值
接口作为方法参数
接口作为方法参数的情况是很常见的,经常会碰到。当遇到方法参数为接口类型时,那么该方法要传入一个接口实现类对象。如下代码演示。
//接口interface Smoke{ public abstract void smoking();}class Student implements Smoke{ @Override public void smoking() { System.out.println("课下吸口烟,赛过活神仙"); }}//测试类public class Test { public static void main(String[] args) { //通过多态的方式,创建一个Smoke类型的变量,而这个对象实际是Student Smoke s = new Student(); //调用method方法 method(s); } //定义一个方法method,用来接收一个Smoke类型对象,在方法中调用Smoke对象的show方法 public static void method(Smoke sm){//接口作为参数 //通过sm变量调用smoking方法,这时实际调用的是Student对象中的smoking方法 sm.smoking(); }}
接口作为方法返回值
接口作为方法返回值的情况,在后面的学习中会碰到。当遇到方法返回值是接口类型时,那么该方法需要返回一个接口实现类对象。如下代码演示。
//接口interface Smoke{ public abstract void smoking();}class Student implements Smoke{ @Override public void smoking() { System.out.println("课下吸口烟,赛过活神仙"); }}//测试类public class Test { public static void main(String[] args) {//调用method方法,获取返回的会吸烟的对象 Smoke s = method();//通过s变量调用smoking方法,这时实际调用的是Student对象中的smoking方法 s.smoking(); } //定义一个方法method,用来获取一个具备吸烟功能的对象,并在方法中完成吸烟者的创建 public static Smoke method(){ Smoke sm = new Student(); return sm; }}
归纳总结:
- 类作为方法参数时,说明要向方法中传入该类的对象
- 类作为方法返回值时,说明该方法要返回一个该类的对象。
- 抽象类作为方法参数时,说明要传入一个实现抽象类所有抽象方法的子类对象。
- 抽象类作为方法返回值时,说明需要返回一个实现抽象类所有抽象方法的子类对象。
- 接口作为方法参数时,说明该方法要传入一个接口实现类对象。
- 接口作为方法返回值时,说明该方法需要返回一个接口实现类对象。
(更多相关java知识干货,关注“软帝在线”公众号获取相关福利)
测试私有方法_Java基础之抽象类、接口作为方法参数和返回值相关推荐
- C语言基础入门48篇_20_函数入门:为什么使用函数?(函数使得程序模块化 使用函数封装细节,使得程序员只要面向函数的接口编程(参数与返回值),而不用关心函数内部细节)
菜鸟和高手都会基本,那菜鸟为什么是菜鸟,高手为什么是高手呢?很大的区别在于,高手写的程序[结构性]更好,更容易维护.而函数就是C语言结构化的一种手段. 函数可以将大的计算任务划分为多个较小的任务(解耦 ...
- 重学Java(035)——Java基础知识(类作为成员变量、接口作为成员变量、接口作为方法参数和返回值类型)
学习内容:三种引用类型用法 一.类作为成员变量 二.接口作为成员变量 三.接口作为方法参数和返回值类型 实际的开发中,引用类型的使用非常重要,也是非常普遍的.我们可以在理解基本类型的使用方式基础上,进 ...
- java构造方法可以重载吗_Java基础教程之构造器与方法重载
在方法与数据成员中,我们提到,Java中的对象在创建的时候会初始化(initialization).初始化时,对象的数据成员被赋予初始值.我们可以显式初始化.如果我们没有给数据成员赋予初始值,数据成员 ...
- java中类作为成员变量类型使用、接口作为成员变量类型使用、接口作为方法的参数或返回值使用
类作为成员变量类型使用: 自定义的类也可以作为成员变量使用,如: // 1.创建一个电脑角色的类: public class Computer{private String computername; ...
- java——接口作为方法的参数和返回值
接口作为方法的参数和返回值 package cn.itcast.day11.demo07;import java.util.ArrayList; import java.util.List; /* j ...
- Java12-day03【(类名、抽象类名、接口名)作为形参和返回值、内部类、常用API(Math、System、toString()、Arrays)、冒泡】
视频+资料(工程源码.笔记)[链接:https://pan.baidu.com/s/1MdFNUADVSFf-lVw3SJRvtg 提取码:zjxs] Java基础--学习笔记(零起点打开java ...
- java分布式对象——远程方法中的参数和返回值+远程对象激活
[0]README 1)本文文字描述转自 core java volume 2, 旨在学习 java分布式对象--远程方法中的参数和返回值+远程对象激活 的相关知识: [1]远程方法中的参数和返回值 ...
- 本地方法(JNI)——数值参数与返回值
[0]README 1) 本文部分文字描述 转自 core java volume 2 , 旨在理解 本地方法(JNI)--数值参数与返回值 的基础知识 : 2) for source code, p ...
- java输出结果校验_2. Bean Validation声明式校验方法的参数、返回值
你必须非常努力,才能干起来毫不费力.本文已被 https://www.yourbatman.cn 收录,里面一并有Spring技术栈.MyBatis.JVM.中间件等小而美的专栏供以免费学习. ✍前言 ...
最新文章
- OGRE 2.1 Windows 编译
- 小白的第一本python书_读书笔记:编程小白的第一本python入门书
- cx oracle 返回码,oracle错误代码处理cx_oracle
- CTF-Python常用函数语段详解;
- STM32使用IIC总线通讯协议在OLED屏幕上显示字符串、汉字、单总线获取DHT11模块温湿度并通过IIC显示到屏幕(软件IIC)
- iOS-BMK标注覆盖物
- 14个JavaScript代码优化技巧
- STM32的AFIO时钟什么时候开启?
- linux文件删除恢复
- Windows下的脚本在Linux中运行乱码问题
- python中质数的表达方式_python求质数的3种方法
- flask从html中页面重定向,如何在成功登录后才将用户重定向到所需的HTML页面(flask python应用程序)?...
- layui 读取本地excel内容_layui-excel
- openwrt使用port-mirroring
- 情人节程序员用HTML网页表白【全屏3D相册】 HTML5七夕情人节表白网页源码 HTML+CSS+JavaScript
- python中init函数详解_Python 中__init__函数以及参数self
- 模电——电源与地之间并联电容的作用
- STRM--解决因配置Streams而在alert中出现的 ORA-02068错误
- 每天5分钟玩转 OpenStack
- 一起做激光反光板(四)-框架搭建
热门文章
- SAP Spartacus login 超链接和 login form 的区别
- SAP Spartacus B2B页面的List Component
- 答网友提问,ABAP post调用外部接口遇到405 not allow
- SAP Spartacus 中 Angular json pipe 的工作原理
- 使用SAP open connector调用第三方系统的API
- 一个程序员年近四十岁的一些胡思乱想
- React里require('object-assign')里的实现原理
- SAP Leonardo机器学习如何获取模型存储的实际地址
- Product settype list tool - report PROD_DISPLAY_SETTYPE
- why context node binding does not work in pop up window case