java如何访问private方法_java什么叫方法重写

java如何访问private方法_java什么叫方法重写当Java的类有一个方法的访问修饰符是private,我们在写测试类时该怎样对它进行测试吗?道难是先将它的修饰符改成public,然后在做完测试之后再将其改回public,其实完全不用这样做,我们在编写测试类的时候只要将其私有方法抽出,让其可以访问,就可以按要求进行测试了.开始我们先写一个被测试类,如下:package com.srcopen.test;public class Exa

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

当Java的类有一个方法的访问修饰符是private,我们在写测试类时该怎样对它进行测试吗?道难是先将它的修饰符改成public,然后在做完测试之后再将其改回public,其实完全不用这样做,我们在编写测试类的时候只要将其私有方法抽出,让其可以访问,就可以按要求进行测试了.

开始我们先写一个被测试类,如下:

java如何访问private方法_java什么叫方法重写
package
 com.srcopen.test;
java如何访问private方法_java什么叫方法重写
java如何访问private方法_java什么叫方法重写java如何访问private方法_java什么叫方法重写

public
 
class
 Example

{

java如何访问private方法_java什么叫方法重写java如何访问private方法_java什么叫方法重写 
private int add(int a,int b){

java如何访问private方法_java什么叫方法重写  
return a+b;
java如何访问private方法_java什么叫方法重写 }

java如何访问private方法_java什么叫方法重写 
java如何访问private方法_java什么叫方法重写java如何访问private方法_java什么叫方法重写 
public int doAdd(int c,int d){

java如何访问private方法_java什么叫方法重写  
return this.add(c, d);
java如何访问private方法_java什么叫方法重写 }

java如何访问private方法_java什么叫方法重写}

 

这个类非常的简单,它有一个相加的私有方法,进行a+b,然后在一个公有方法doAdd(int,int)中进行调用.下面让我们写一个简单的测试类对这个被测试类进行测试,如下:

java如何访问private方法_java什么叫方法重写
package
 com.srcopen.test;
java如何访问private方法_java什么叫方法重写

import
 junit.framework.
*
;
java如何访问private方法_java什么叫方法重写java如何访问private方法_java什么叫方法重写

public
 
class
 Example_Test 
extends
 TestCase 

{

java如何访问private方法_java什么叫方法重写java如何访问private方法_java什么叫方法重写    
public void testDoAdd() {

java如何访问private方法_java什么叫方法重写         Example example
=new Example();
java如何访问private方法_java什么叫方法重写         assertEquals(
4,example.doAdd(1,3));
java如何访问private方法_java什么叫方法重写    }

java如何访问private方法_java什么叫方法重写}

这对被测类的公有方法进行测试,应该是没问题的,然后对其私有方法进行测试,我们要想办法将其私有方法通过编程变成私有方法,主要用去Method这个类,将我们要测试的方法赋给它,其中它有一个设置,可使方法变成可进入,这样就可以达到测试的目的了,编写的完整代码如下:

java如何访问private方法_java什么叫方法重写
package
 com.srcopen.test;
java如何访问private方法_java什么叫方法重写

import
 junit.framework.
*
;
java如何访问private方法_java什么叫方法重写

import
 java.lang.reflect.Method;
java如何访问private方法_java什么叫方法重写

import
 java.lang.reflect.InvocationTargetException;
java如何访问private方法_java什么叫方法重写java如何访问private方法_java什么叫方法重写

public
 
class
 Example_Test 
extends
 TestCase 

{

java如何访问private方法_java什么叫方法重写java如何访问private方法_java什么叫方法重写    
public void testDoAdd() {

java如何访问private方法_java什么叫方法重写         Example example
=new Example();
java如何访问private方法_java什么叫方法重写         assertEquals(
4,example.doAdd(1,3));
java如何访问private方法_java什么叫方法重写    }

java如何访问private方法_java什么叫方法重写java如何访问private方法_java什么叫方法重写    
public void testAdd() {

java如何访问private方法_java什么叫方法重写        Example example
=new Example();
java如何访问private方法_java什么叫方法重写        Object o
=null
java如何访问private方法_java什么叫方法重写java如何访问private方法_java什么叫方法重写        
try{

java如何访问private方法_java什么叫方法重写java如何访问private方法_java什么叫方法重写            Method method 
= example.getClass().getDeclaredMethod(add,new Class[] {
int.classint.class}
);
java如何访问private方法_java什么叫方法重写            method.setAccessible(
true);                //让其方法可访问
java如何访问private方法_java什么叫方法重写java如何访问private方法_java什么叫方法重写
            o = method.invoke(example, new Object[] {
13}
);
java如何访问private方法_java什么叫方法重写java如何访问private方法_java什么叫方法重写        }
catch(Exception e){

java如何访问private方法_java什么叫方法重写            
java如何访问private方法_java什么叫方法重写        }

java如何访问private方法_java什么叫方法重写        assertEquals(
4,o.toString());
java如何访问private方法_java什么叫方法重写    }

java如何访问private方法_java什么叫方法重写}

注意导入Method类的时候要为import java.lang.reflect.Method;

还要就是使用method.setAccessible(true)将这个方法设为可以访问.

运行一下我们发现已经可以进行测试了.~~

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/189617.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • addEventListener 用法

    addEventListener 用法addEventListener用法addEventListener用于注册事件处理程序,IE中为 attachEvent,我们为什么讲addEventListener而不讲a

  • plsql13连接oracle配置_plsql developer配置数据库连接

    plsql13连接oracle配置_plsql developer配置数据库连接由于硬件技术的不断更新,Win7系统逐渐成为主流,而且计算机内存逐渐增大,为了充分的利用内存资源(因为32为系统最多只能用到3G左右的内存),提高系统性能,很多人开始使用Win7(64Bit)的系统。在64位系统上安装64位的Oracle数据库,但是没有对应的64位PL/SQLDeveloper,此时就不能使用PL/SQLDeveloper来进行直接连接的,所以要想实现连接还得需要其他途径来完

    2022年10月12日
  • 打开桌面计算机投屏到扩展屏,将Win10电脑屏幕内容投屏到小米电视的操作方法…「建议收藏」

    Win10系统自带的无线投屏功能,可能大家还不知道,现在手机、电视都是支持Miracast协议的,把屏幕内容投屏到电视上使用,极大的满足了我们的视觉。不管是打游戏、看视频、看图片,投屏到电视比看电脑要来得更爽,这该怎么操作?本文和大家分享一下将Win10电脑屏幕内容投屏到电视的操作方法。Win10投屏电视步骤如下:(以小米电视为例)1、首先将电脑连接无线WIFI。2、将电视也连接在同一个无线WIF…

  • 龙芯版UOS 自带浏览器无法使用flash在线播放视频

    龙芯版UOS 自带浏览器无法使用flash在线播放视频龙芯版UOS自带浏览器无法使用flash在线播放视频1.案例无法播放视频龙芯CPU使用MIPS指令集,用互联网的最新flash(一般情况下,是X86指令集flash),点击下载安装最新flash,会提示安装失败。2.解决办法a.打开命令界面(效果如下)b1.输入命令:sudoaptinstallfirefox-flashplayerb2.输入命令:输入密码3.完成后重新打开UOS自带浏览器,就可以轻松看视频。祝大家生活愉快!!!在此鸣谢:感谢龙芯大佬指导

  • Java爬虫系列二:使用HttpClient抓取页面HTML

    爬虫要想爬取需要的信息,首先第一步就要抓取到页面html内容,然后对html进行分析,获取想要的内容。上一篇随笔《Java爬虫系列一:写在开始前》中提到了HttpClient可以抓取页面内容。今天就

  • android自动画廊,Android3D画廊效果与自动轮播Banner

    android自动画廊,Android3D画廊效果与自动轮播Banner最开始项目需要使用3D画廊效果作为首页轮播,网上找了半天也没有比较满意的,最终决定自己写一个。本控件采用的是viewpager完成的,支持无限滑动的3D视觉的画廊效果、平面普通广告栏轮播。提供对外方法:指示器图片自定义、小图片位置、是否圆角等。本代码已托管到[github]https://github.com/lzjin/ViewPagerGallery1、先看效果图:gif1.gifgif2….

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号