7个回答
展开全部
这个从关键字来理解啊,
1. 如果方法定义前面加final,说明你已经知道这个方法提供的功能已经满足你要求,不需要进行扩展,并且也不允许任何从此类继承的类来覆写这个方法,但是继承仍然可以继承这个方法,也就是说可以直接使用。
2. 如果方法定义前面加static,表示静态方法,方法和类关联,直接由类名来调用。
3. 如果方法定义前面加abstract,表示抽象方法,由继承类来实现。
4. 对于方法前面的public, private,protected等这些是控制方法可以被调用的范围。
5. 如果方法定义前面有native,Native方法是由另外一种语言(如c/c++,FORTRAN,汇编)实现的本地方法。因为在外部实现了方法,所以在java代码中,就不需要声明了,有点类似于借口方法,一般用不着。
6.如果方法定义前面加synchronized,表示当前方法体是一个临界区,通过锁机制来控制多个线程同步,在多线程应用里面经常使用。
1. 如果方法定义前面加final,说明你已经知道这个方法提供的功能已经满足你要求,不需要进行扩展,并且也不允许任何从此类继承的类来覆写这个方法,但是继承仍然可以继承这个方法,也就是说可以直接使用。
2. 如果方法定义前面加static,表示静态方法,方法和类关联,直接由类名来调用。
3. 如果方法定义前面加abstract,表示抽象方法,由继承类来实现。
4. 对于方法前面的public, private,protected等这些是控制方法可以被调用的范围。
5. 如果方法定义前面有native,Native方法是由另外一种语言(如c/c++,FORTRAN,汇编)实现的本地方法。因为在外部实现了方法,所以在java代码中,就不需要声明了,有点类似于借口方法,一般用不着。
6.如果方法定义前面加synchronized,表示当前方法体是一个临界区,通过锁机制来控制多个线程同步,在多线程应用里面经常使用。
展开全部
例如Test类中有一个test()方法
如果这样定义final void test(),则表示这个方法不可被重写;
如果这样定义static void test(),则表示这是静态方法,在外面使用的时候就写Test.test();就可直接调用;
如果这样定义:void test();这是一个普通方法,使用时要,new Test().test();
如果这样定义 abstract void test();这是一个抽象方法,定义在接口中,表示它的实现类必须实现这个方法。
如果这样定义final void test(),则表示这个方法不可被重写;
如果这样定义static void test(),则表示这是静态方法,在外面使用的时候就写Test.test();就可直接调用;
如果这样定义:void test();这是一个普通方法,使用时要,new Test().test();
如果这样定义 abstract void test();这是一个抽象方法,定义在接口中,表示它的实现类必须实现这个方法。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
抽象方法必须定义在抽象类里,如果一个类有抽象方法必须是抽象方法!还要抽象类不能实例话对象
实例:
package 百度知道;
public abstract class Test2 {
public void fun1()
{
System.out.println("fun1");
}
public abstract void fun2();
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Test2 obj;
}
}
静态方法和非静态方法的区别就是:
静态方法可以用类和对象调用,而非静态方法只能用对象调用:
实例:
public class Test2 {
public void fun1()
{
System.out.println("fun1");
}
public static void fun2()
{
System.out.println("fun2");
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Test2 obj=new Test2();
obj.fun1();
obj.fun2();
Test2.fun2();
}
}
结果:
fun1
fun2
fun2
实例:
package 百度知道;
public abstract class Test2 {
public void fun1()
{
System.out.println("fun1");
}
public abstract void fun2();
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Test2 obj;
}
}
静态方法和非静态方法的区别就是:
静态方法可以用类和对象调用,而非静态方法只能用对象调用:
实例:
public class Test2 {
public void fun1()
{
System.out.println("fun1");
}
public static void fun2()
{
System.out.println("fun2");
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Test2 obj=new Test2();
obj.fun1();
obj.fun2();
Test2.fun2();
}
}
结果:
fun1
fun2
fun2
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
方法是类中表示对象或实体所需的活动,它必须在相应的类中用程序来表示。一个类中所有对象都执行某些共同的活动或操作,对象所需的每个活动都定义为类的一个函数,称为“方法”。
属性和方法都是类的一部分。方法可以有或无返回值,其参数也可有可无,视情况而定。
静态方法是一种特殊的方法,使用这种方法无需通过类的实例,而使用类名加方法名直接调用。在类的非静态成员(属性和方法)和静态方法中使用类成员的方法不同。
在类成员(非静态成员)中调用静态方法,直接通过类名加方法名。
在静态方法中使用类的非静态成员,需要实例化类,通过实例对象加非静态成员名调用。
属性和方法都是类的一部分。方法可以有或无返回值,其参数也可有可无,视情况而定。
静态方法是一种特殊的方法,使用这种方法无需通过类的实例,而使用类名加方法名直接调用。在类的非静态成员(属性和方法)和静态方法中使用类成员的方法不同。
在类成员(非静态成员)中调用静态方法,直接通过类名加方法名。
在静态方法中使用类的非静态成员,需要实例化类,通过实例对象加非静态成员名调用。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
类型有很多,楼上的都说到了,补充一下用法:
首先实例化一个方法所在的类的对象,然后用(对象名.方法名)就可以调用 了
首先实例化一个方法所在的类的对象,然后用(对象名.方法名)就可以调用 了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询