当前位置: 代码迷 >> J2SE >> 请问数据类型的有关问题
  详细解决方案

请问数据类型的有关问题

热度:33   发布时间:2016-04-23 20:24:32.0
请教数据类型的问题
请问高手,java技术手册或者java api手册中的public+类名+方法名(){}这种模式是不是静态的方法类型?是不是public+static+类名 +方法名()这种类型??
------解决方案--------------------
public insets getInsetsI()这个方法的前提是insets 是一个类,这个方法要返回一个insets 的实例如果把insets 换成void的话就不用返回了,这个说法可以用在设计模式中的工厂模式中,就是创建一个工厂类,专门返回各种类的对象,谁用谁取。(大致是这样的)
------解决方案--------------------

public class InsetsTest {
    
    private Insets insets;

    public static void main(String[] args)
    {
        InsetsTest test = new InsetsTest();
        test.getInsets();
        test.setInsets();
        
        //
        getInsetsStatic();
    }
    
    public static Insets getInsetsStatic()
    {
        System.out.println("create Insets object... ");
        return new Insets();
    }
    
    public Insets getInsets()
    {
        System.out.println("create Insets object... ");
        return new Insets();
    }
    
    public void setInsets()
    {
        System.out.println("set insets value... ");
        
        //下面两句的效果是一样的
        insets = getInsets();
        insets = this.getInsets();        
    }
}

class Insets{}

在实例方法中,成员方法或变量都是默认添加this的,在静态方法中只能通过new的实例对象进行调用。静态方法不可以直接调用实例方法,实例方法可以直接调用静态方法。
------解决方案--------------------
public class Insets {

public Insets getInsets (){
return new Insets();
}

public void test (){
Insets insets = getInsets();
}
}

不知道楼主是不是要这种情况。同一个类中可以直接调用getInsets()方法。如果不是同一个类就需要先创建一个实例,然后再调用。不过你说的这种情况一般会加上static,一般在单例和工厂设计模式中使用。如果在工厂设计模式中,会结合反射来一起使用
  相关解决方案