今天宠物迷的小编给各位宠物饲养爱好者分享java的作用域的宠物知识,其中也会对什么叫java作用域变量(java变量的作用域是什么)进行专业的解释,如果能碰巧解决你现在面临的宠物相关问题,别忘了关注本站哦,现在我们开始吧!
在Java中,方法内的一个变量的作用域(包括方法参数)是从它定义的地方开始,直到它所在的作用域的结束位置。
比如,在方法开始定义了变量i,那么直到方法结束都不能再定义另一个i了。再比如在一个for语句中定义了变量i,那么在这个for循环内不能再有同名变量,但出了for循环之后,是可以再次定义的。这就是作用域不能嵌套的意思。
在c/c++中,作用域可以嵌套,比如:
int i;
{
int i;
{
......可以无限制地嵌套下去,这里每对大括号之间就是一个**的作用域
}
}
再深入一点,在Java中,类与方法之间作用域是可以嵌套的,把类看做一个大的作用域,它定义的字段(或叫域)可以被方法中的同名字段所屏蔽,其行为类似于上面将的c/c++的作用域嵌套。
page(pageContext):作用范围是当前页面
request:作用范围是当前页面和当前发出的servlet请求
session:作为范围本次会话,也就是如果你不换或者关闭浏览器。你访问多少个页面或者servlet都是这个session
application(ServletContext) :作用范围整个服务器,只要服务器不关就不会消失
在Java中,方法内的一个变量的作用域(包括方法参数)是从它定义的地方开始,直到它所在的作用域的结束位置。
比如,在方法开始定义了变量i,那么直到方法结束都不能再定义另一个i了。再比如在一个for语句中定义了变量i,那么在这个for循环内不能再有同名变量,但出了for循环之后,是可以再次定义的。这就是作用域不能嵌套的意思。
在c/c++中,作用域可以嵌套,比如:
int i;
{
int i;
{
......可以无限制地嵌套下去,这里每对大括号之间就是一个**的作用域
}
}
再深入一点,在Java中,类与方法之间作用域是可以嵌套的,把类看做一个大的作用域,它定义的字段(或叫域)可以被方法中的同名字段所屏蔽,其行为类似于上面将的c/c++的作用域嵌套。
作用域,以下是我自己的见解: public class Demo{ private String name;//只能是本类内有效 public void test(){ int i=0;//这里的i,只能在方法有效。 }}
是指的访问权限么?
1,public
2,protected
3,(default)
4,private
1任何类都可以访问
2在同一个包中的所有类可以访问,以及该类的子类
3同一个包中的所有类
4只能在本类中访问
x,y 作用域在main,属于局域变量 a,b,sum作用域在Twosum类中,在Twosum类中a,b可以随处调用,属于全局变量 i,j 作用域在方法 act()中,属于局域变量 总之,你就看括号, 在一对大括号呢 声明的变量,作用域就在这个括号内。
在Java中,方法内的一个变量的作用域(包括方法参数)是从它定义的地方开始,直到它所在的作用域的结束位置。
比如,在方法开始定义了变量i,那么直到方法结束都不能再定义另一个i了。再比如在一个for语句中定义了变量i,那么在这个for循环内不能再有同名变量,但出了for循环之后,是可以再次定义的。这就是作用域不能嵌套的意思。
在c/c++中,作用域可以嵌套,比如:
int i;
{
int i;
{
......可以无限制地嵌套下去,这里每对大括号之间就是一个**的作用域
}
}
再深入一点,在Java中,类与方法之间作用域是可以嵌套的,把类看做一个大的作用域,它定义的字段(或叫域)可以被方法中的同名字段所屏蔽,其行为类似于上面将的c/c++的作用域嵌套。
在Java中,方法内的一个变量的作用域(包括方法参数)是从它定义的地方开始,直到它所在的作用域的结束位置。
比如,在方法开始定义了变量i,那么直到方法结束都不能再定义另一个i了。再比如在一个for语句中定义了变量i,那么在这个for循环内不能再有同名变量,但出了for循环之后,是可以再次定义的。这就是作用域不能嵌套的意思。
在c/c++中,作用域可以嵌套,比如:
int i;
{
int i;
{
......可以无限制地嵌套下去,这里每对大括号之间就是一个**的作用域
}
}
再深入一点,在Java中,类与方法之间作用域是可以嵌套的,把类看做一个大的作用域,它定义的字段(或叫域)可以被方法中的同名字段所屏蔽,其行为类似于上面将的c/c++的作用域嵌套。
作用域,以下是我自己的见解: public class Demo{ private String name;//只能是本类内有效 public void test(){ int i=0;//这里的i,只能在方法有效。 }}
朋友,我算是过来人,走了不少弯路,劝你一句,不要自学,最好是去培训班 我是从java培训班里走出来的.java一点都不难(如果自学就很难了),我感觉它开发效率最快,我说的是开发周期喔! 对你所说的问题我也回答一下吧,请相信我的回答 为了说清楚这些术语,我们举个例子吧: 以一个家庭为例:一个家中有爸爸,妈妈,还有两个儿子,一个女儿;另一个家庭则只有妈妈和两个女儿,这些就足够了,应该可以解释你所说的那些术语 首先来说最基本的类吧,家庭就是一个类,注意,是抽象的家庭,不是针对某一个具体的家庭,我们将其命名为:Family。Family里定义了所有家庭共有的特征,如有爸爸,妈妈和子女。而像爸爸,妈妈,子女等这些家庭成员也都是具体成员的抽象,这便是类,也就是说,类是具体事物共有特征的抽象。现在我们可以将所有的家庭成员都定义为一个类Person。Person类里边定义了所有家庭成员的共有特征,当然并不是所有的特征都要具有,有一些特征,对于一个具体的Person对象,也就是像爸爸呀,妈妈呀什么的,可以只具有Person类的一些特征即可。具体这么写吧 public class Person{ private int age; private int sex;//性别,假定0代表男,1代表女 private String name; public Person(int age,int sex,String name){ //这是类的构造函数,该类的一个实例对象就由它来构造 //就如同孩子需要***生育都才能出世一样,这里妈妈就是构造函数 this.age=age; this.sex=sex; this.name=name; } } 简单一点吧,定义一个家庭类 public class Family{ private Person father;//爸爸其实也是类Person(即人类这个类)一个对象而已 private Person morther; //与爸爸同理 //下面是家庭中的孩子,因为孩子可能有多个,故将其定义为一个类的对象数组 private Person[] children; public Family(Person father....){}//同样是一个构造函数,这里就不具体写了 } 现在我们假定第一个家庭的父亲有一套木匠用的工具,但父亲并不会做木活,但是它的两个儿子都继承它的工具,与现实有一点不现的是继承以后,两个儿子都将会拥有同样的工具,而且,父亲的这些工具还在,相当于它的两个儿子有了它的这套工具的复制品。不过两个儿子有了工具后,由于自己到处学艺,便会做木活了,但两个儿子做的还不完全一样,大儿子会做只会做床,小儿子只会做桌子。 这样一来,外面的人就认为这个家庭是既会做床也会做桌子。但外面的人并知道它们家谁会做床,谁会做桌子,当外面有人要请木匠给做机床时,它们可以去找这个家的爸爸,让他给做床,爸爸虽然不会做木活,但他的两个儿子继承了他的工具,并具体实现了这些工具的一部分用途,这个工具在java里就可以写成一个抽象方法比如:public void makeObject();爸爸有这个方法,但是在爸爸这些方法为空,什么也做不了,儿子继承并实现了这个方法,父亲便可以调用儿子的方法,这样就可以做床了。方法是将指向父亲的变量指向儿子(也就是子类)这在java里是允许和经常做的。这样一来,外面的人只管请爸爸做木活,而不管是不是他做的了。总之就是能做就行了。 同理,如果要做桌子的话,也可以这样做,只需爸爸的变量指向小儿子就可以了。 再同理,你还可以定义另一个家庭,妈妈有什么(比如说针线什么的),两个女儿又怎么怎么样。 以上就是态的体现,意思就是,外面的人都是调用的爸爸的同一个方法makeObject(),却可以得到不同的产品(床或者桌子),这便是多态,多态的基础是继承,即必须要有继承才可以实现多态,办法是在父类中放一个空的方法,让它的子类来实现该方法。调用的时候让父类指向子类。 现在我们已经有两个家庭了,假设这两个家庭关系很好,要来一个长跑比赛,显然这两个家庭都是类Family的两个实例,但这两个实例又不完全相同,第二个家庭只有女性。那么它们比赛的时候是各跑各的,相互没有任何关系。肯定有一个要跑完,那么这个时候,裁判就是主线程,它的*声一响,这两个家庭就开始跑起来了。(即两个**和线程)跑起来以后,裁判就管不了了,这便是多线程!
本文由宠物迷 百科常识栏目发布,非常欢迎各位朋友分享到个人朋友圈,但转载请说明文章出处“什么叫java作用域变量”
上一篇
怎样辨别纯种比格犬?