静态方法

Java修饰符

拥有回忆 提交于 2020-03-12 07:46:13
访问权限修饰符 访问级别 同类 同包 子类 不同包 public Y Y Y Y protected Y Y Y N default Y Y N N private Y N N N protected 经常需要允许子类访问定义在父类中的数据和方法,但是不允许非子类访问这些数据和方法,这种情况下就可以使用protected,它允许任何包中的子类访问父类 default (缺省,什么也不写)在同一包内可见,不使用任何修饰符 实际上它限制的范围就是一个包内可以访问。如果不在一个包内,即使继承关系任然是不能访问的。它是针对本包访问而设计的 static static 修饰符,表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。 用法:是一个修饰符,用于修饰成员(成员变量,成员函数),当成员被静态修饰后,就多了一个调用方式,除了可以被对象调用外,还可以直接被类名调,类名.静态成员。 存在:方法区,共享区,数据区(非堆内存、栈内存的另一个存储区),static块仅在该类被加载时执行一次。 特点:随着类的加载而加载,也就是说静态会随着类的消失而消失,说明他的 生命周期最长;优先于对象的存在 ,静态先存在,对象后存在; 被所有对象所共享;可以直接被类名调用。 static变量 ——也称作 静态变量

java学习day10

有些话、适合烂在心里 提交于 2020-03-12 04:52:25
文章目录 接口 接口的定义基本格式 接口的抽象方法定义 接口的抽象方法使用 接口的默认方法使用 接口的静态方法定义 接口的私有方法定义 普通私有方法 静态私有方法 接口的常量定义和使用 接口的内容小结 继承父类并实现多个接口 接口之间的多继承 接口 接口的定义基本格式 接口就是多个类的公共规范 接口是一种引用数据类型,最重要的内容就是其中的抽象方法 如何定义一个接口的格式: public interface 接口名称{ //接口内容 } 备注:换成了关键字interface之后,编译生成的字节码文件仍然是:.java --> .class 如果是java7,那么接口中包含的内容有: 常量 抽象方法 如果是java8,还可以额外包含有: 默认方法 静态方法 如果是java9,还可以额外包含有: 私有方法 接口的抽象方法定义 在任何版本的java中,接口都能定义抽象方法 注意事项: 接口当中的抽象方法,修饰符必须是两个固定的关键字:public abstract 这两个关键字修饰符,可以选择性地省略 方法的三要素,可以随意定义 public interface MyInterfaceAbstract { // 这是一个抽象方法 public abstract void methodAbs1 ( ) ; // 这也是抽象方法 abstract void methodAbs2 ( ) ;

【中级软考】绑定、静态绑定、动态绑定、静态分配、动态分配是什么?

ぃ、小莉子 提交于 2020-03-11 12:51:15
绑定是一个把过程调用和响应调用而需要执行的代码加以结合的过程。在一般的程序设计语言中绑定是在编译时进行的,叫做静态绑定。 动态绑定则是在运行时进行的,因此,一个给定的过程调用和代码结合直到调用发生时才进行。 动态绑定是和类的继承以及多态相联系的。在继承关系中,子类是父类的一个特例,所以父类对象可以出现的地方,子类也可以出现。因此在运行过程中,当一个对象发送消息请求服务时,要根据接受对象的具体情况将请求的操作和实现的方法进行连接,即动态绑定。 动态分配和静态分配(内存)参考: 动态分配和静态分配 来源: CSDN 作者: Dontla 链接: https://blog.csdn.net/Dontla/article/details/104790669

关于MFC在静态文本中显示ICON

隐身守侯 提交于 2020-03-11 09:17:52
我们有时候在使用MFC的时候想要某些控件能显示机器设备的运行状态,例如三色灯的指示效果,个人的思路是在界面上用静态文本框去加载一个ICON或者是BMP图片,就是说贴图,不知道大家有没有更好的思路.既然有了思路那就开始吧,具体如下来完成. 如何实现static加载icon,加载bmp基本上类似,我们首先想到的是在静态文本框里面绘制ICON,是SetIcon函数,但是开始我使用这个函数函数没有成功,因为他的参数是一个句柄HICON,那么我们就先要获取他的句柄用以下方法,分为4步,我已经验证过: 1.HICON hicon1 = LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_ICON_GREEN));//获取icon的句柄,这里的IDI就是我们要显示的ICON的ID; 2.CStatic *pStatic1=(CStatic*)GetDlgItem(IDC_STATIC_I1);//定义一个指向静态文本框的指针,这里的IDC是我们静态文本的ID; 3.pStatic1-> ModifyStyle(0x0,SS_ICON|SS_CENTERIMAGE); //设置icon的风格; 4.pStatic1-> SetIcon(hicon1); //调用设置ICON的函数 来源: https://www.cnblogs.com

Java 静态变量和静态方法

故事扮演 提交于 2020-03-11 01:06:06
在类中,使用 static 修饰符修饰的属性(成员变量)称为静态变量,也可以称为类变量,常量称为静态常量,方法称为静态方法或类方法,它们统称为静态成员,归整个类所有。 静态成员不依赖于类的特定实例,被类的所有实例共享,就是说 static 修饰的方法或者变量不需要依赖于对象来进行访问,只要这个类被加载,Java 虚拟机就可以根据类名找到它们。 调用静态成员的语法形式如下: 类名 . 静态成员 注意 : static 修饰的成员变量和方法,从属于类。 普通变量和方法从属于对象。 静态方法不能调用非静态成员,编译会报错。 静态变量 类的成员变量可以分为以下两种: 1 . 静态变量(或称为类变量),指被 static 修饰的成员变量。 2 . 实例变量,指没有被 static 修饰的成员变量。 静态变量与实例变量的区别如下: 1 静态变量 运行时,Java 虚拟机只为静态变量分配一次内存,在加载类的过程中完成静态变量的内存分配。 在类的内部,可以在任何方法内直接访问静态变量。 在其他类中,可以通过类名访问该类中的静态变量。 2 实例变量 每创建一个实例,Java 虚拟机就会为实例变量分配一次内存。 在类的内部,可以在非静态方法中直接访问实例变量。 在本类的静态方法或其他类中则需要通过类的实例对象进行访问。 静态变量在类中的作用如下: 1 . 静态变量可以被类的所有实例共享

Java基础知识复习一

为君一笑 提交于 2020-03-10 11:46:40
1、JDK,JRE,JVM三者之间的联系和区别 ①、JVM,即Java Virtual Machine,Java虚拟机 JVM并不能识别.java文件,只能识别.class文件,JVM能识别.class文件中的字节码指令并调用操作系统完成指定的个动作,所以JVM是Java跨平台的核心。 ②、JRE,Java Runtime Environment,Java运行时环境 JRE主要包含2个部分,JVM的标准实现和Java的一些基本类库。相比于JVM,多出来的是一部分Java类库。 ③、JDK,Java Development Kit,开发工具包 JDK是整个Java开发的核心,它集成了JRE和一些好用的小工具,例如:javac.exe,java.exe,jar.exe等。 因此,如果只是部署和运行Java程序,只需安装JRE即可;如果要开发Java程序则需要安装JDK。 2、Java跨平台的原因 跨平台的含义是不依赖于操作系统和硬件环境。Java编译器将Java编译成与平台无关的class字节码文件,然后由JVM执行class字节码文件,该字节码是与平台无关的,是介于源代码和机器指令之间的一种状态,在后续的执行中,JVM将class字节码文件解释成与平台相对应的机器指令,这样既减少了编译次数,又增强了程序的可移植性,因此被称为“一次编译,多处运行!” 3、接口和抽象类的区别 ①、接口

一个jsp页面引入另一个jsp页面的三种方式 及静态引入和动态引入的区别

混江龙づ霸主 提交于 2020-03-10 10:01:15
转载下, 转载自:http://blog.csdn.net/fn_2015/article/details/70311495 1. 第一种:jstl import < c:import url= "inlayingJsp.jsp" > </ c:import > 2. 第二种:jsp include指令 include指令告诉容器:复制被包含文件汇总的所有内容,再把它粘贴到这个文件中。 <%@ include file= "inlayingJsp.jsp" % > 3. 第三种:jsp include动作 < jsp:include page= "inlayingJsp.jsp" flush= "true" /> 注意:(1) include指令在转换时插入“Header.jsp”的源代码,而 <jsp:include>动作在运行时插入“Header.jsp"的响应。 <%@include为静态包含,<%@include不论包含的是txt文本还是jsp文件,被包含的页面都不会从新编译。 <%@include为静态包含,包含了几个JSP转译成servlet时就会有 几 个 class文件,如果在jsp1定义了变量i同时在jsp2也定义了变量i那么你编译都会通不过的, jsp容器会告诉你i重复定义了. <jsp:include 为动态包含,<jsp:include 如包含jsp文件

Virtualbox中ubuntu配置静态ip地址及DNS

放肆的年华 提交于 2020-03-09 19:05:36
python开发环境:VirtualBox+Ubuntu18.04 每当我重启电脑重新打开VirtualBox,Ubuntu中的IP地址都会改变,这样,我的开发软件的连接解析地址也要经常去改变,这样非常麻烦,这里我就记录一下固定IP地址的方法。 第一步:设置VirtualBox网络连接方式 第二步骤:进入Ubuntu系统设置固定IP 2-1:首先查看一下IP地址 输入ifconfig 2-2:cd /etc/network sudo vim interfaces 在文件中追加如下内容: auto enp0s3 # enp0s3 要与上面的那个写法一致 iface enp0s3 inet static address 192.168.0.66 # 设置你需要固定的IP netmask 255.255.255.0 # 默认 gateway 192.168.0.1 # 默认 broadcast 192.168.0.255 # 默认    追加内容如下: 第三步:设置固定DNS 进入 cd /etc/systemd/ 然后编辑文件:resolved.conf 放开注释DNS 填入一个公共的dns 第四步:重启网络或者重启电脑,我的建议是重启电脑。 重启电脑后我们看到网络的图标是如下的样子,不过不要紧,打开Ubuntu系统中的游览器是可以上网的,再者 物理机ping虚拟机中的系统

java: 无法从静态上下文中引用非静态 方法

醉酒当歌 提交于 2020-03-09 16:38:15
遇到的问题是这样的 public static void main ( String [ ] args ) { // TextArrays a=new TextArrays(); int n = 0 ; Scanner scanner = new Scanner ( System . in ) ; n = scanner . nextInt ( ) ; System . out . println ( f ( n ) ) ; } public int f ( int n ) { if ( n == 1 || n == 2 ) { return 1 ; } else { return f ( n - 1 ) + f ( n - 2 ) ; } } 报错是这样的:Error:(14, 28) java: 无法从静态上下文中引用非静态 方法 f(int) 具体的解决: new 一个对象调用非静态方法f 或者 将f()改成静态方法 在一个静态类里面 如果不通过对象调用一个非静态方法,这是不被允许的 要么把方法变成静态方法,要么通过对象来调用它 来源: CSDN 作者: _凌晨两点半_ 链接: https://blog.csdn.net/WA_MC/article/details/104751127

《写给大忙人看的Java SE 8》——Java8新特性总结

﹥>﹥吖頭↗ 提交于 2020-03-09 05:32:40
阅读目录 接口中的默认方法和静态方法 函数式接口和Lambda表达式 Stream API 新的日期和时间 API 杂项改进 参考资料 回到顶部 接口中的默认方法和静态方法 先考虑一个问题,如何向Java中的集合库中增加方法?例如在Java 8中向 Collection 接口中添加了一个 forEach 方法。 如果在Java 8之前,对于接口来说,其中的方法必须都为抽象方法,也就是说接口中不允许有接口的实现,那么就需要对每个实现Collection接口的类都需要实现一个forEach方法。 但这就会造成在给接口添加新方法的同时影响了已有的实现,所以Java设计人员引入了接口默认方法,其目的是为了解决接口的修改与已有的实现不兼容的问题,接口默认方法可以作为库、框架向前兼容的一种手段。 默认方法就像一个普通Java方法,只是方法用 default 关键字修饰。 下面来举一个简单的例子 public interface Person { //默认方法 default String getName(String name) { return name; } } /////////////////////////////////////////////////////////////////////// public class Student implements Person { }