『壹』 java中接口和抽象类以及它们的属性方法都分别可以用什么访问修饰符
【Java接口修饰符是public abstract】
接口就是提供一种统一的”协议”,而接口中的属性也属于“协议”中的成员。它们是公共的,静态的,最终的常量。相当于全局常量。抽象类是不“完全”的类,相当于是接口和具体类的一个中间层。即满足接口的抽象,也满足具体的实现。
接口中不可以定义变量即定义的变量前都要加上final修饰,使之成为常量(没有final修饰的是变量,加上final修饰就会变成常量)。所以接口的属性默认是public static final 常量,且必须赋初值。
【抽象类】
abstract抽象
1、修饰类时为抽象类,即为概念类,不能实例化;
2、修饰的方法为抽象方法,该方法没有方法体,必须由子类实现,若没有实现会报错;
3、子类若为抽象类,则其中的抽象方法可不实现;
注:抽象类可以没有抽象方法,但抽象方法所在的类必须为抽象类
『贰』 java里的interface接口类怎么用
Java不支持多重继承,即一个类只能有一个父类
为了克服单继承的缺点,Java使用了接口,一个类可以实现多个接口
接口是抽象方法和常量值定义的集合,是一种特殊的抽象类
接口中只包含常量和方法的定义,没有变量和方法的实现
接口中的所有方法都是抽象的
接口中成员的访问类型都是public
接口中的变量默认使用public static final标识(可以在定义的时候不加此修饰,系统默认)
接口通过使用关键字interface来声明
格式:interface 接口的名字
接口体:
接口体中包含常量定义和方法定义两部分
接口体中只进行方法的声明,不允许提供方法的实现
方法的定义没有方法体,且用分号结尾
public interface Runner
{
int ID=1;
void run();
}
接口允许被继承,可以用extends继承一个已有的接口
public interface Runner
{
int ID=1;
void run();
}
interface Animal extends Runner
{
void breathe();
}
通过使用implements实现接口中的所有方法
class Fish implements Animal
{
public void run()
{
System.out.println("Fish is swiming");
}
public void breathe()
{
System.out.println("Fish is bubbling");
}
}
如果只需要实现某接口中定义的部分方法,可以通过定义一个抽象类来实现
abstract class LandAnimal implements Animal
{
public void breathe()
{
System.out.println("LandAnimal is breathing");
}
一个类可以继承一个父类的同时,实现一个或多个接口,extends关键字必须位于implements关键字之前
class Student extends Person implements Runner
{
……
public void run()
{
System.out.println("The student is Running");
}
……
}
在类中实现接口的方法时,方法的名字、返回类型、参数个数及类型必须与接口中的完全一致
接口中的方法默认是public 的,所有类在实现接口方法时,一定要用public来修饰
如果接口的方法的返回类型不是void,则在类中实现该接口方法时,方法体至少要有一个return语句
如果是void类型,类体除了两个大括号以外,可以没有任何语句
Java中提供的接口都在相应的包中,通过引入包可以使用Java提供的接口,也可以自己定义接口
一个Java源文件就是由类和接口组成的
接口可以增加很多类都需要实现的功能,不同的类可使用相同的接口,同一个类也可实现多个接口
接口只关心功能,并不关心功能的具体实现,使用相同接口的类不一定有继承关系
public接口:接口声明时,关键字interface前面加上public关键字,可以被任何一个类使用
友好接口类:一个接口不加修饰,友好接口可以被同同一包中的类使用,转载,仅供参考。
『叁』 Java中同一个类下一个方法怎样访问另一个方法下的变量
方法的变量属于局部变量。也就是说方法中的变量是只有这个方法在调用时候才会分配内存的,而且当这个包含(你说的这个需要在下一个方法中访问的变量)的变将会随着方法的结束而死亡。也就是说方法中的变量是不可以在其它方法中访问的,它们属于不同栈帧中
你只能蒋这个变量声明为此类的一个成员变量。
classA{
inta;
publicvoidfun1(){
intp=a;
简册宽姿手}
拦亮publicvoidfun2(){
intc=a;
}
}
这样此类中的每个方法都可以访问变量a了。
总结:变量的作用域:局部变量和成员变量的作用范围。自己学吧。
『肆』 (java)什么类变量什么是对象变量如何访问这两类变量。
类变量就是指类里用static修饰的变量(static不能修饰方法变量).
对象变量是指一般的实例变量,也就是不用static修饰的变量。
以上说的变量都不是指方法变量。
访问类变量不需要初始化一个对象去访问,直接用“类名.变量名”的方式就可以访问,当然也可以用“实例对像.变量名”的方式访问,但类丛告袜其实还是按渗激友斗类名.变量名的方式去转换访问。
访问对象变量就用“实例变量.变量名”的方式去访问。
『伍』 Java如何调用其他类里的变量
有2种方式
第一种,直接把类中变量定义成public
比如:
publicclassA{
publicvoidchangeA(){
Bb=newB();//实例化B类
b.a=2;//这里直接访问B类中的变量专属A
}
}
publicclassB{
publicinta=0;//定义一个public变量
}
第二种,通过get,set方式访问变量
publicclassA{
publicvoidchangeA(){
Bb=newB();//实例化B类
b.setA(2);//这里设置B类中的变量A
b.getA();//获取B类中A的值
}
}
publicclassB{
privateinta=0;//定义一个private私有变量
publicvoidsetA(inta){//定义set方法,设置变量A的值
this.a=a;
}
publicintgetA(){//定义get方法,获取变量A的值
returnthis.a;
}
}
『陆』 在Java接口的实现类中如何调用这个接口中定义的变量
class A{int num=10;
public int getNum() {
return num;
}
} //定义父类
interface B {int num=1;} //定义接口
public class C extends A implements B{
public static void main(String[] args){
C c=new C();
System.out.println(c.getNum());
System.out.println(B.num);
}
}
因为接口里面的i是常量,就如楼上的所说,
你要访问版,权因为随便哪个在接口里的常量
都是静态的,可以通过类名即B.num调用,而
在类里面定义的就不同,你可以专门写一个方法
来取值!你想直接调用接口和类中的同名num是
做不到的!
『柒』 Java中同一个类下一个方法怎样访问另一个方法下的变量深圳
在java中,一个方法中式不能够访问另一个方法中定义的变量的!
为什么?其实在java中,变量按照作用域主要分为两种:全局变量和具备变量!全局变量一般都是类的属性!局部变量一般都是写在方法中或者写在其他语句块中(如:循环语句块和switch语句块等)。
作为局部变量,他的作用域(或者说使用范围)仅仅只是在于,当前变量被定义的位置一直到这个变量所在语句块中的最后(也就是"}"所在位置)。
也就是说,在一个方法中定义的变量,仅仅只能在这个方法中才能盯禅够正常使用!在别的方法中是无法直接使用的!
所以,就你这个问题,给你一个解决办法,将这个变量设成一个属性!让这个变量成为一个全局的存在!
这样的话,你就能在这个类的方法中使用这个变量了!
友情提示纤漏一下:如果想直接在main函数中用(实际上也就是在使用的static修饰的方法中用),这个属性页必须被定义成static的!关于这个,你可以去看看static的用法!
大概知道你的意思了,你是想在不同的方法中对sql进行包装,然后通过统一的方式获得包装后的sql语句,而且这些sql语句之间还不能有影响!
其实,想法虽然是好的,但是实现起来可能会比较有难度!你去思考一个问题,你在getsql()方法中,如何设定逻辑,才能够自由的去调用你所写的public List search_sim(String condition)的其它方法?
而且,假使你能够实现,在一个方法中调用其他方法中定义的变量还是不现实的!毁则烂要么把这个变量定义为全局的,要么把这个sql语句干脆设定为这个方法的返回值!
Θ
『捌』 java如何访问类的成员变量和方法
成员变量和方法分为静态和实例变量和方法x0dx0a例如定义一个类:x0dx0aclass Textx0dx0a{x0dx0a public static int number;x0dx0a public int temp;x0dx0a public static void method(){}x0dx0apublic void method2(){}x0dx0a}x0dx0a如果你想访问temp属性,你枯答就必须先创建一个Text的对象,才能访问:Text b = new Text();x0dx0ab.temp;这就是实例成员变没敬慧量。实例变量也是一样x0dx0a而你想 访问number的话,不用创建Text的实例就可以访问,就像这样:Text.number.这就是类成员稿扮变量。实例方法也是一样x0dx0a主要区别就是访问是需不需要创建对象,而对于类成员变量,所有对象是共享一个变量的。
『玖』 在Java类中对变量或方法的访问有哪些访问控制的关键字他们各有什么作用,举例说明。
java类声明的完整格式 [public][abstract|final]class ClassName[extends SuperClassName][implements InterfaceNameList]{……}
其袜中中修饰符public表示任意类均可以访问这个类,如果没有public,则只有与该类定义在同一个包中的类才可以访问这个类。abstract表示这个类是个抽象类。final表示无法被任何人继承的,那也就意味着此类在一个继承树中是一个叶子类,并且此类的设计已被认为很完美而不需要进行修改或扩展。extends关键词表示类继承了以SuperClassName为类名的父类,implements关键词表示类实现了InterfaceNameList中列出的各个接口。
java变量的完整的声明格式 [public|protected|private][static][final][transient][volatile]type varibleName;
其中修饰符public表示该方法没有访问限制,protected只能被自身或者子类(在同一个包或不在同一个包)以及同一个包下的其他类可以访问到,private只能被自身访问。如果不加任何权限限定成员则是默认访问权限default,即只能被和这个类在同一个包中的亮中类访问。访问权限时在类级别上的而不是对象级别。static表示这个变量时类变量3中初始化方法方法一:在声明中赋值 方法二:在构造函数中赋值方 法三:初始化块 。final表示这个变量一旦被初始化便不可改变,这里不可改变的意思对告键山基本类型来说是其值不可变,而对于对象变量来说其引用不可再变。其初始化可以在两个地方,一是其定义处,也就是说在final变量定义时直接给其赋值,二是在构造函数中。这两个地方只能选其一,要么在定义时给值,要么在构造函数中给值,不能同时既在定义时给了值,又在构造函数中给另外的值。transient用来声明一个暂时性变量,在默认情况下,类中所有变量都是对象永久状态的一部分,当对象被保存到外存时,这些变量必须同时被保存,用transient限定的变量指示JAVA虚拟机,该变量并不属于对象的永久状态,从而不能被永久存储。volatile修饰的变量,在被多个线程共享时,系统将采取更优化的控制方法提高线程并发控制方法提高线程并发效率。
java方法的完整的声明格式[<accessLevel>][static][final|abstract][native][synchronized]<return_type><name>([<argument_list>])[throws<exception_list>]{<block>}
其中accessLevel与成员变量相同。static限定它为类方法,而实例方法不需要static限定词。abstract表明方法时抽象方法,没有实现体。final指明方法布恩能够被重写。native表示方法用其他语言实现。synchronized用来控制多个并发线程对共享数据的访问。throws<exception_list>表示可能抛出的异常。
『拾』 JAVA中的接口中,public static final 变量,能被使用该接口的类访问吗如果能,
当然能啊,接口是对外定枣野义的统一规范,常量当然要定义为final!含含!如果能被实现凳老喊他的类改来改去的,还叫规范吗?