请教数据类型的问题

king_2007 2014-07-09 09:28:46
请问高手,java技术手册或者java api手册中的public+类名+方法名(){}这种模式是不是静态的方法类型?是不是public+static+类名 +方法名()这种类型??
...全文
654 26 打赏 收藏 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
scott_129 2014-07-28
  • 打赏
  • 举报
回复
public class Insets {

	public Insets getInsets (){
		return new Insets();
	}
	
	public void test (){
		Insets insets = getInsets();
	}
}
不知道楼主是不是要这种情况。同一个类中可以直接调用getInsets()方法。如果不是同一个类就需要先创建一个实例,然后再调用。不过你说的这种情况一般会加上static,一般在单例和工厂设计模式中使用。如果在工厂设计模式中,会结合反射来一起使用
gaofuqi 2014-07-28
  • 打赏
  • 举报
回复
引用 22 楼 king_2007 的回复:
方法也可以调用方法啊??
方法都是通过类或对象进行调用的,只不过如果是是当前类或者子类中调用同一个类的方法时,都可以不写类或对象表示当前类或对象。
gaofuqi 2014-07-28
  • 打赏
  • 举报
回复
引用 21 楼 king_2007 的回复:
[quote=引用 17 楼 gaofuqi 的回复:]

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的实例对象进行调用。静态方法不可以直接调用实例方法,实例方法可以直接调用静态方法。
实例方法,成员方法,你都把我说迷糊了,什么是实例方法?什么是成员方法(void 的方法吧)???getClass().getName();这两个方法是什么原型啊??[/quote] 静态成员(方法和属性)是属于类的,使用static关键字修饰,实例成员(方法和属性)是属于对象的,没有static的修饰; 这些概念性的东西,你还是多看书吧。。。
king_2007 2014-07-28
  • 打赏
  • 举报
回复
引用 23 楼 gaofuqi 的回复:
[quote=引用 21 楼 king_2007 的回复:] [quote=引用 17 楼 gaofuqi 的回复:]

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的实例对象进行调用。静态方法不可以直接调用实例方法,实例方法可以直接调用静态方法。
实例方法,成员方法,你都把我说迷糊了,什么是实例方法?什么是成员方法(void 的方法吧)???getClass().getName();这两个方法是什么原型啊??[/quote] 静态成员(方法和属性)是属于类的,使用static关键字修饰,实例成员(方法和属性)是属于对象的,没有static的修饰; 这些概念性的东西,你还是多看书吧。。。[/quote] 请问下public Insets getInsets()这个方法是什么方法??该怎么调用??
king_2007 2014-07-27
  • 打赏
  • 举报
回复
方法也可以调用方法啊??
king_2007 2014-07-27
  • 打赏
  • 举报
回复
引用 17 楼 gaofuqi 的回复:

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的实例对象进行调用。静态方法不可以直接调用实例方法,实例方法可以直接调用静态方法。
实例方法,成员方法,你都把我说迷糊了,什么是实例方法?什么是成员方法(void 的方法吧)???getClass().getName();这两个方法是什么原型啊??
  • 打赏
  • 举报
回复
你是不是在问返回类型啊?因为我发现方法前加类的只能是返回值啊?
油头小兄妹 2014-07-25
  • 打赏
  • 举报
回复
static 修饰的都是静态的,无论属性还是方法
gaofuqi 2014-07-25
  • 打赏
  • 举报
回复

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的实例对象进行调用。静态方法不可以直接调用实例方法,实例方法可以直接调用静态方法。
gaofuqi 2014-07-25
  • 打赏
  • 举报
回复
引用 15 楼 king_2007 的回复:
请问下,不知道你看过getInsets()这个方法没有?它的原型是public Insets getInsets(),java手册中没有加static,可是用法是Insets i=getInsets();难道getinsets()这个方法也是静态的??
不是,这是编译问题,Java的实例方法、实例变量都是默认添加当前对象this的。
secret32 2014-07-25
  • 打赏
  • 举报
回复
楼主说的public+类名+方法名(){}或者public+static+类名 +方法名()中的类名都是指的返回值 java在声明或实现方法时都不需要指定类名,java中的方法实现一定是属于某个类的 在类中调用类的其他方法可以写 this.methodName() 进行调用 或者直接写 methodName调用 不管该方法是否是静态的
king_2007 2014-07-24
  • 打赏
  • 举报
回复
请问下,不知道你看过getInsets()这个方法没有?它的原型是public Insets getInsets(),java手册中没有加static,可是用法是Insets i=getInsets();难道getinsets()这个方法也是静态的??
king_2007 2014-07-24
  • 打赏
  • 举报
回复
引用 11 楼 u011643314 的回复:
引用 10 楼 king_2007 的回复:
[quote=引用 9 楼 u011643314 的回复:] public insets getInsetsI()这个方法的前提是insets 是一个类,这个方法要返回一个insets 的实例如果把insets 换成void的话就不用返回了,这个说法可以用在设计模式中的工厂模式中,就是创建一个工厂类,专门返回各种类的对象,谁用谁取。(大致是这样的)
你能不能给个例子再说。我知道insets是个类,但是Insets insets=getInsets(); 这样的封装,我理解不了,而且设计模式结构是什么样的,我无法理解。
引用 10 楼 king_2007 的回复:
引用 9 楼 u011643314 的回复:
public insets getInsetsI()这个方法的前提是insets 是一个类,这个方法要返回一个insets 的实例如果把insets 换成void的话就不用返回了,这个说法可以用在设计模式中的工厂模式中,就是创建一个工厂类,专门返回各种类的对象,谁用谁取。(大致是这样的)
你能不能给个例子再说。我知道insets是个类,但是Insets insets=getInsets(); 这样的封装,我理解不了,而且设计模式结构是什么样的,我无法理解。
package code.demo.pa01; public class ADemo { /** * * 作者:fcs * 描述:该方法相当于ADemo ademo = new ADemo(); * 时间:2014-7-22 */ public static ADemo getADemo(){ return new ADemo(); } public void print(){ System.out.println("我将被getADemo()方法返回的ADemo对象调用"); } public static void main(String[] args) { //getADemo().print();第一种写法 //ADemo.getADemo().print();第二种写法 //下面是第三种 ADemo ademo = getADemo(); ademo.print(); // ADemo ademo1 = new ADemo(); // ademo1.print(); //第四种写法 } }[/quote] 我似乎懂但又迷糊,ADemo ademo = new ADemo(); ademo.print();跟ADemo ademo = getADemo();ademo.print();有什么区别吗??这种设计模式有什么意义吗?
思雨洛阳 2014-07-23
  • 打赏
  • 举报
回复
应该不说话静态类型,一般加上static的话就是静态的。
u011643314 2014-07-22
  • 打赏
  • 举报
回复
不知道这种写法你能看懂吗?
u011643314 2014-07-22
  • 打赏
  • 举报
回复
引用 10 楼 king_2007 的回复:
引用 9 楼 u011643314 的回复:
public insets getInsetsI()这个方法的前提是insets 是一个类,这个方法要返回一个insets 的实例如果把insets 换成void的话就不用返回了,这个说法可以用在设计模式中的工厂模式中,就是创建一个工厂类,专门返回各种类的对象,谁用谁取。(大致是这样的)
你能不能给个例子再说。我知道insets是个类,但是Insets insets=getInsets(); 这样的封装,我理解不了,而且设计模式结构是什么样的,我无法理解。
引用 10 楼 king_2007 的回复:
引用 9 楼 u011643314 的回复:
public insets getInsetsI()这个方法的前提是insets 是一个类,这个方法要返回一个insets 的实例如果把insets 换成void的话就不用返回了,这个说法可以用在设计模式中的工厂模式中,就是创建一个工厂类,专门返回各种类的对象,谁用谁取。(大致是这样的)
你能不能给个例子再说。我知道insets是个类,但是Insets insets=getInsets(); 这样的封装,我理解不了,而且设计模式结构是什么样的,我无法理解。
package code.demo.pa01; public class ADemo { /** * * 作者:fcs * 描述:该方法相当于ADemo ademo = new ADemo(); * 时间:2014-7-22 */ public static ADemo getADemo(){ return new ADemo(); } public void print(){ System.out.println("我将被getADemo()方法返回的ADemo对象调用"); } public static void main(String[] args) { //getADemo().print();第一种写法 //ADemo.getADemo().print();第二种写法 //下面是第三种 ADemo ademo = getADemo(); ademo.print(); // ADemo ademo1 = new ADemo(); // ademo1.print(); //第四种写法 } }
u011643314 2014-07-20
  • 打赏
  • 举报
回复
public insets getInsetsI()这个方法的前提是insets 是一个类,这个方法要返回一个insets 的实例如果把insets 换成void的话就不用返回了,这个说法可以用在设计模式中的工厂模式中,就是创建一个工厂类,专门返回各种类的对象,谁用谁取。(大致是这样的)
king_2007 2014-07-20
  • 打赏
  • 举报
回复
引用 9 楼 u011643314 的回复:
public insets getInsetsI()这个方法的前提是insets 是一个类,这个方法要返回一个insets 的实例如果把insets 换成void的话就不用返回了,这个说法可以用在设计模式中的工厂模式中,就是创建一个工厂类,专门返回各种类的对象,谁用谁取。(大致是这样的)
你能不能给个例子再说。我知道insets是个类,但是Insets insets=getInsets(); 这样的封装,我理解不了,而且设计模式结构是什么样的,我无法理解。
king_2007 2014-07-17
  • 打赏
  • 举报
回复
引用 6 楼 vnvlyp 的回复:
[quote=引用 5 楼 king_2007 的回复:] 我是想知道public+类名+方法名(){}这种方法是怎么编写的??比如insets这个类它的方法getinsets()方法是public insets getinsets(){}??可是我试着编写这种类型的方法,总是编写不成功,除非在public 后面加个static 才能运行成功,z这是怎么回事?
没有static修饰符的方法是非静态方法,也就是成员方法,你必须要有这个类的一个实例,才能调用这个方法 比如你 public class A { ...... public Insets getInsets() {} ...... } 那么你需要先 A a = new A(); 才能 a.getInsets()[/quote] 你是不是初学者啊?如果是这样简单我会问你吗?我不知道实例化对象,然后调用方法 吗?这还用你说啊。我是问你public insets getInsets()这个方法,你是怎么编写的?我一般编写 public insets getInsetsI()后就出现问题了。你是怎么编写的?
king_2007 2014-07-11
  • 打赏
  • 举报
回复
请问你看过这个insets这个类没有?它的写法是 insets i=getinsets();?而它的getinsets()方法是public insets getinsets(),而这个getinsets()方法是属于java.awt .类 Container的。
加载更多回复(6)

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧