【Java基础】几种简单的调用关系与方法
直接上代码吧。
class lesson4AB
//同一个类下的public修饰的方法A,B可以相互调用
{
public void A()
{
B();//等价于this.B();
}
public void B()
{
A();//等价于this.A();
}
}
class lesson4C
//存在于不同类里的public修饰的方法C调用B
{
public void C()
{
lesson4AB lAB=new lesson4AB();
lAB.B();
//上下两种方法是等价的,都可以调用
new lesson4AB().B();
}
}
class lesson4DE
//同一个类中的static方法与非静态方法相互调用。
{
public static void D()//用static修饰,属于类成员
{
//E();//错误: 无法从静态上下文中引用非静态 方法 E()
//【通俗说是静态不引用非静态】 //this.E();//错误: 无法从静态上下文中引用非静态 变量 this
//【通俗说就是static和this不能共存】 new lesson4DE().E();//通过
//public void E()没用static修饰,属于对象,只能用对象来调用
}
public void E()//没用static修饰,属于对象
{
D();//等价于this.D();
//对象可以调用类成员
}
}
class lesson4
{
public static void main(String[] args)
{
System.out.println("May you happy!");
}
}
对于上述代码第35行的详细解释:
类方法不能调用非类方法,所以直接调用E()是错误的。但可以通过对象来调用,所以要new出来一个对象来调用它(非静态方法)。
网上有一段这样的话,总结的挺好:
类是一个抽象的概念,对象是一个实体。静态方法只能在内存中分配一个空间,不管多少次引用都指向那个空间,即常驻内存,是类对象,不是单个实例。而非静态方法是随对象产生的,每生成一个对象就新生成一个非静态方法,而且分配不同的空间。所以非静态成员必须依赖于对象。 (2014.10.31修改添加)
本人小菜鸟一枚,以上为网上自学心得总结,如有错误敬请指出。新手童鞋多多交流,大神们多多指点。祝大家生活愉快。
【Java基础】几种简单的调用关系与方法的更多相关文章
- java基础解析系列(十一)---equals、==和hashcode方法
java基础解析系列(十一)---equals.==和hashcode方法 目录 java基础解析系列(一)---String.StringBuffer.StringBuilder java基础解析系 ...
- 一种简单快速的模板解析方法,活用with javascript版
//一种简单快速的模板解析方法,活用with var parseTpl = function( str, data ) { var tmpl = 'var __p=[];' + 'with(obj|| ...
- CSS里总算是有了一种简单的垂直居中布局的方法了
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- JAVA基础(二)—— 常用的类与方法
JAVA基础(二)-- 常用的类与方法 1 Math类 abs ceil floor 绝对值 大于等于该浮点数的最小整数 小于等于该浮点数的最大整数 max min round 两参数中较大的 两参数 ...
- java基础(1-50)-------->超级简单,不信你不会!!!
1:java中的保留字:const&goto; 2:&和&&都可以做逻辑运算符,即运算符两边的表达式都为true,结果才为true,一方为false,则结果为false ...
- java基础-四种方法引用
实例 直接三角形,通过两边算第三边,目的是为了如何使用这几种方法引用.代码中多有些不合适,尽情原谅. 静态方法引用 接口的参数列表与类中的具体实现方法的参数列表一样,返回值一致. 调用 //静态引用 ...
- java基础:父类与子类之间变量和方法的调用
1)父类构造函数 java中当调用某个类的构造方法的时候,系统总会调用父类的非静态初始化块进行初始化,这个调用是隐式的,而且父类的静态初始化代码 块总是会被执行,接着调用父类的一个或者多个构造器执行初 ...
- java 基础 四种权限修饰符
/** * Java有四种权限修饰符: * public > protected > (default) > private * 同一个类 YES YES YES YES * 同一个 ...
- Java中几种常用数据类型之间转换的方法
Java中几种常用的数据类型之间转换方法: 1. short-->int 转换 exp: short shortvar=0; int intvar=0; shortvar= (short) in ...
随机推荐
- iocomp控件的应用
iocomp是一个强大的工业控件.适用于vb/vc/vs.net/Delphi/BCB(windows/linux).囊括了常见的工业控制控件,详见官网说明,源码能够到官网下载,也能够到我的资源库下载 ...
- 修改sqlserver2008中表的schema
schema类似命名空间,相同schema中不能有同样的表名,不用schema下可以有相同的表名 修改schema的方法: 在数据库的 安全性->架构 中添加一个新的架构 找到要修改的表,右击设 ...
- Android ListView使用(非原创)
1.ListView:它以列表的形式展示具体要显示的内容,并且能够根据数据的长度自适应屏幕显示 <LinearLayout xmlns:android="http://schemas. ...
- 1203.4——循环语句 之 for
for循环的一般形式为:for(表达式1; 表达式2; 表达式3){ 语句块} 它的执行过程如下:1) 先求解表达式1. 2) 求解表达式2,若其值为真(非0),则执行循环体,否则结束循环. 3 ...
- session问题和JSP
session问题和JSP 07. 五 / J2EE / 没有评论 一.Session开发中遇到的问题1.内存中的Session非常多,怎么办?2.用户在购物中.服务器停掉了该web应用(或者重新 ...
- EL表达式在JS中取出来打印[object HTMLDivElement]的问题
今天做项目的时候,要在JS中获取请求参数中的 值,想直接用 ${param.tabName}获取,结果console.debug()打印出来,居然是 [object HTMLDivElement] ...
- Log4Net 的简要配置
引用log4net.dll AssemblyInfo.cs中 [assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyF ...
- Javascript经典实例 - 字符串
1] 'this is a string'这是字符串直接量,new String('this is a string')这是字符串对象,字符串对象可以用字符串对象所带的属性和方法,直接量在“表面上”也 ...
- DOT + graphviz 轻松画图
一.简介DOT & graphviz1. DOT DOT是一种文本图形描述语言.DOT语言文件通常具有.gv或是.dot的文件扩展名.当然,在编写好.dot或者.gv的文件之后,需要有专 ...
- js智能提示代码
<reference path = "../../../Scripts/jQuery-1.4.1.js"/>