不同修饰符使用细节

常用来修饰类、方法、变量的修饰符

  • 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基础之抽象类、接口作为方法参数和返回值相关推荐

  1. C语言基础入门48篇_20_函数入门:为什么使用函数?(函数使得程序模块化 使用函数封装细节,使得程序员只要面向函数的接口编程(参数与返回值),而不用关心函数内部细节)

    菜鸟和高手都会基本,那菜鸟为什么是菜鸟,高手为什么是高手呢?很大的区别在于,高手写的程序[结构性]更好,更容易维护.而函数就是C语言结构化的一种手段. 函数可以将大的计算任务划分为多个较小的任务(解耦 ...

  2. 重学Java(035)——Java基础知识(类作为成员变量、接口作为成员变量、接口作为方法参数和返回值类型)

    学习内容:三种引用类型用法 一.类作为成员变量 二.接口作为成员变量 三.接口作为方法参数和返回值类型 实际的开发中,引用类型的使用非常重要,也是非常普遍的.我们可以在理解基本类型的使用方式基础上,进 ...

  3. java构造方法可以重载吗_Java基础教程之构造器与方法重载

    在方法与数据成员中,我们提到,Java中的对象在创建的时候会初始化(initialization).初始化时,对象的数据成员被赋予初始值.我们可以显式初始化.如果我们没有给数据成员赋予初始值,数据成员 ...

  4. java中类作为成员变量类型使用、接口作为成员变量类型使用、接口作为方法的参数或返回值使用

    类作为成员变量类型使用: 自定义的类也可以作为成员变量使用,如: // 1.创建一个电脑角色的类: public class Computer{private String computername; ...

  5. java——接口作为方法的参数和返回值

    接口作为方法的参数和返回值 package cn.itcast.day11.demo07;import java.util.ArrayList; import java.util.List; /* j ...

  6. Java12-day03【​​​​​​​(类名、抽象类名、接口名)作为形参和返回值、内部类、常用API(Math、System、toString()、Arrays)、冒泡】

    视频+资料(工程源码.笔记)[链接:https://pan.baidu.com/s/1MdFNUADVSFf-lVw3SJRvtg   提取码:zjxs] Java基础--学习笔记(零起点打开java ...

  7. java分布式对象——远程方法中的参数和返回值+远程对象激活

    [0]README 1)本文文字描述转自 core java volume 2, 旨在学习 java分布式对象--远程方法中的参数和返回值+远程对象激活 的相关知识: [1]远程方法中的参数和返回值 ...

  8. 本地方法(JNI)——数值参数与返回值

    [0]README 1) 本文部分文字描述 转自 core java volume 2 , 旨在理解 本地方法(JNI)--数值参数与返回值 的基础知识 : 2) for source code, p ...

  9. java输出结果校验_2. Bean Validation声明式校验方法的参数、返回值

    你必须非常努力,才能干起来毫不费力.本文已被 https://www.yourbatman.cn 收录,里面一并有Spring技术栈.MyBatis.JVM.中间件等小而美的专栏供以免费学习. ✍前言 ...

最新文章

  1. OGRE 2.1 Windows 编译
  2. 小白的第一本python书_读书笔记:编程小白的第一本python入门书
  3. cx oracle 返回码,oracle错误代码处理cx_oracle
  4. CTF-Python常用函数语段详解;
  5. STM32使用IIC总线通讯协议在OLED屏幕上显示字符串、汉字、单总线获取DHT11模块温湿度并通过IIC显示到屏幕(软件IIC)
  6. iOS-BMK标注覆盖物
  7. 14个JavaScript代码优化技巧
  8. STM32的AFIO时钟什么时候开启?
  9. linux文件删除恢复
  10. Windows下的脚本在Linux中运行乱码问题
  11. python中质数的表达方式_python求质数的3种方法
  12. flask从html中页面重定向,如何在成功登录后才将用户重定向到所需的HTML页面(flask python应用程序)?...
  13. layui 读取本地excel内容_layui-excel
  14. openwrt使用port-mirroring
  15. 情人节程序员用HTML网页表白【全屏3D相册】 HTML5七夕情人节表白网页源码 HTML+CSS+JavaScript
  16. python中init函数详解_Python 中__init__函数以及参数self
  17. 模电——电源与地之间并联电容的作用
  18. STRM--解决因配置Streams而在alert中出现的 ORA-02068错误
  19. 每天5分钟玩转 OpenStack
  20. 一起做激光反光板(四)-框架搭建

热门文章

  1. SAP Spartacus login 超链接和 login form 的区别
  2. SAP Spartacus B2B页面的List Component
  3. 答网友提问,ABAP post调用外部接口遇到405 not allow
  4. SAP Spartacus 中 Angular json pipe 的工作原理
  5. 使用SAP open connector调用第三方系统的API
  6. 一个程序员年近四十岁的一些胡思乱想
  7. React里require('object-assign')里的实现原理
  8. SAP Leonardo机器学习如何获取模型存储的实际地址
  9. Product settype list tool - report PROD_DISPLAY_SETTYPE
  10. why context node binding does not work in pop up window case