「java创建外部类对象」java在一个类中创建另一个类的对象
今天给各位分享java创建外部类对象的知识,其中也会对java在一个类中创建另一个类的对象进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java在main方法中创建对象和main方法外创建对象有什么区别
- 2、JAVA问题,创建局部内部类对象可以(外部类对象.new内部局部类)这么写吗?
- 3、java创建对象是不是在类内部和外部什么位置都随便创建??谢谢
- 4、java中为什么主函数中可以创建外部类对象,但是创建内部类对象就报错呢?
- 5、java中为什么在主函数中创建外部类对象可以,创建内部类对象就失败了呢?2类不都是非静态的吗?
- 6、java中访问静态内部类时为什么不能创建外部类的对象
java在main方法中创建对象和main方法外创建对象有什么区别
在main方法中创建对象,只有这个方法才可以使用这个对象,别的方法使用必须要在创建一个对象
在main方法外创建别的类对象,首先得在main方法中创建当前类的对象,这时候才会加载出你在main方法外创建的别的类的对象,这样类中其他方法才可以使用这个对象,如果你没有在main方法中创建当前类的对象,在其他方法中也不能使用这个对象
package com.unique.java;
public class TestDemo {
Zoo zoo = new Zoo(1);
public static void main(String[] args) {
TestDemo testDemo = new TestDemo();
Zoo zoo1 = new Zoo(2);
}
}
class Zoo{
Zoo(int idx){
System.out.println("Zoo("+idx+")");
}
}
输出
Zoo(1)
Zoo(2)
//----------------------------------------------------------------------------------------
package com.unique.java;
public class TestDemo {
Zoo zoo = new Zoo(1);
public static void main(String[] args) {
//TestDemo testDemo = new TestDemo();
Zoo zoo1 = new Zoo(2);
}
}
class Zoo{
Zoo(int idx){
System.out.println("Zoo("+idx+")");
}
}
}
输出:
Zoo(2)
JAVA问题,创建局部内部类对象可以(外部类对象.new内部局部类)这么写吗?
首先,如果你要在外部类中创建内部类对象,直接new就行。
如果你要在这个外部类之外调用。不好意思必须通过接口调用。
至于你提的问题,java中好像没这么玩的。下面是我以前学习时候的代码。贴出来你研究下
public class Outer {
public static IA test() {
String addr = "北京";
class Inner implements IA {
private int index;
@Override
public void fun() {
System.out.println("局部内部类的实例方法被调用,访问类中实例属性 index=" + index);
}
public Inner(int index) {
this.index = index;
}
}
Inner inner = new Inner(100);
return inner;
}
public interface IA {
//接口中必须有你要从外界调用的方法;
void fun();
}
public class test {
public static void main(String[] args) {
//正确的调用方法,另该内部类实现某接口(接口中必须有你要调用的方法),通过接口类型调用方法:
//能调用到局部内部类中的方法,自然也就能通过方法访问外部类对象了
IA ia = Outer.test();
ia.fun();
}
}
java创建对象是不是在类内部和外部什么位置都随便创建??谢谢
不能在类的外部,java中所有代码都是以类为单位的。类的外面只能是类。而类的里面就可以了,事实上类的里面也可以有类,嵌套类或者匿名类,这是后话了。
java中为什么主函数中可以创建外部类对象,但是创建内部类对象就报错呢?
你的内部类是static型的吗?因为main方法是static的,不能引用非static型的变量或方法。
java中为什么在主函数中创建外部类对象可以,创建内部类对象就失败了呢?2类不都是非静态的吗?
public class OuterClass {
public static void main(String[] args) {
OuterClass outerClass = new OuterClass();
InnerClass innerClass = outerClass.new InnerClass();
StaticInnerClass staticInnerClass = new StaticInnerClass();
}
public void foo() {
InnerClass innerClass = new InnerClass();
StaticInnerClass staticInnerClass = new StaticInnerClass();
}
public class InnerClass {
}
public static class StaticInnerClass {
}
}
了解以下几点:
1:非静态内部类,必须有一个外部类的引用才能创建。
2:在外部类的非静态方法中,因为有隐含的外部类引用this,所以可以直接创建非静态内部类。
3:在外部类的静态方法中,因为没有this,所以必须先获得外部类引用,然后创建非静态内部类。
4:静态内部类,不需要外部类引用就可以直接创建。
5:同时静态的内部类,也不能直接访问外部类的非静态方法。
6:由此可以推测,非静态内部类之所以可以直接访问外部类的方法,是因为创建非静态内部类时,有一个隐含的外部类引用被传递进来。
java中访问静态内部类时为什么不能创建外部类的对象
你首先要明白new Outer().new Inner()是干什么的,这个是在外围类中穿件非静态内部类时的代码,非静态内部类必须要持有一个隐含的指向外部类的引用,所以必须先new outer再new inner,但是如果是非静态的,就无需持有外部类引用,这么写有什么道理呢?
java创建外部类对象的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java在一个类中创建另一个类的对象、java创建外部类对象的信息别忘了在本站进行查找喔。
发布于:2022-11-30,除非注明,否则均为
原创文章,转载请注明出处。