精华内容
下载资源
问答
  • static方法

    千次阅读 2019-04-16 15:27:50
    问题:java中用对象名调用与用类名调用有什么区别 没区别 用对象名调用与用类名直接调用要取决你的方法是否是静态还是非静态 非静态只能用对象名...static方法 使用static定义的属性可以直接被类名称访问,用st...

    问题:java中用对象名调用与用类名调用有什么区别

    没区别
    用对象名调用与用类名直接调用要取决你的方法是否是静态还是非静态
    非静态只能用对象名调用(用new  A a =new A();   a.method();)
    静态就可以直接用类名调用(不用new?  A a =A.method();)

    是这个意思吗?????

    static方法

    使用static定义的属性可以直接被类名称访问,用static定义的方法也可以直接被类名称进行访问。

    同样不受到实例化对象的控制。 

    观察:如下代码


    现在类中已经存在有static方法和非static方法了,那么这个时候对于两者的互相调用存在限制

         |-所有的static方法不允许调用非static定义的属性或方法

         |-所有的非static方法允许访问static属性或方法

    例如:


    所有的static方法可以在没有实例化对象的时候访问,而所有的非static操作必须在有实例化对象产生之后才可以进行操作。

    使用static的属性是共享目的(属性都需要封装),但是使用static的方法的目的只有一个:某些方法不希望受到类的限制;

    即:可以在没有实例化对象的时候进行执行。
    --------------------- 
    作者:Y__C__X 
    来源:CSDN 
    原文:https://blog.csdn.net/weixin_41197830/article/details/79525881 
    版权声明:本文为博主原创文章,转载请附上博文链接!

    展开全文
  • java接口中的default方法和static方法

    千次阅读 2020-06-01 09:32:17
    在java8以后,接口中可以添加使用default或者static修饰的方法 default方法 default修饰方法只能在接口中使用,在接口种被default标记的方法为普通方法,可以直接写方法体。 1.实现类会继承接口中的default方法 如果...

    在JAVA8之前java中的接口类型旨在定义类型的接口规约,并不能拥有自己的方法实现,具体实现完全交由实现类自己完成。
    在java8以后,接口中可以添加使用default或者static修饰的方法

    default方法

    default修饰方法只能在接口中使用,在接口种被default标记的方法为普通方法,可以直接写方法体。

    1.实现类会继承接口中的default方法

    如果接口中有default方法:

    public interface demo {
    	public default void demoFun(){
    		System.out.println("我是接口");
    	}
    }
    

    Test类实现接口:

    public class Test implements demo {
    	
    }
    

    那么Test类将会继承接口demo 中的demoFun方法:

    public class Test2 {
    	public static void main(String[] args) {
    		Test t = new Test();
    		t.default();
    	}
    }
    
    2.如果一个类同时实现接口A和B,接口A和B中有相同的default方法,这时,该类必须重写接口中的default方法

    (因为,类在继承接口中的default方法时,不知道应该继承哪一个接口中的default方法。)接口A:

    public interface A {
    	public default void c(){
    		System.out.println("方法A");
    	}
    }
    

    接口B:

    public interface B {
    	public default void c(){
    		System.out.println("方法B");
    	}
    }
    

    Test类:

    public class Test implements A,B {
    	@overried
    	public default void c(){
    		System.out.println("方法A,B");
    	}
    }
    
    3.如果子类继承父类,父类中有b方法,该子类同时实现的接口中也有b方法(被default修饰),那么继承(extends)时覆盖了实现接口(implements)时的b()方法

    接口A:

    public interface A {
    	public default void b(){
    		System.out.println("A方法");
    	}
    }
    

    类C:

    public class C {
    	public void b(){
    		System.out.println("C方法");
    	}
    }
    

    子类:

    public class Test extends C implements A{
    
    }
    

    实例化:

    Test test=new Test();
    test.b()
    
    输出值为:C方法
    

    static方法

    用法和普通的static方法一样。

    代码示例
    public interface InterfaceA {

        /**
         * 静态方法
         */
        static void showStatic() {
            System.out.println("static方法");
        }
    
    }
    

    测试

    public class Test {
        public static void main(String[] args) {
            InterfaceA.show();
        }
    }
    

    结果

    static方法
    
    展开全文
  • 也就是说,当一个 static 方法被调用时,可能还没有创建任何实例对象,如果从一个 static 方法中发出对非 static 方法的调用,那个非 static 方法关联到那个对象上的呢?这个逻辑无法成立,所以,一个 stati...

    不可以。
    因为非 static 方法是要与对象关联在一起的,必须创建一个对象后,才可以在该对象上进行方法调用,而 static 方法调用时不需要创建对象,可以直接调用。

    也就是说,当一个 static 方法被调用时,可能还没有创建任何实例对象,如果从一个 static 方法中发出对非 static 方法的调用,那个非 static 方法关联到那个对象上的呢?这个逻辑无法成立,所以,一个 static 方法内部不能发出对非 static 方法的调用。

    static 方法是静态方法,是属于类的方法,非 static 方法是属于对象的方法,所以在 static 方法中想要调用非 static 方法,要先新创建一个对象,再有这个对象来调用非 static 方法。

    本质是 jvm 加载顺序约定的,加载 static 方法的时候非静态方法还没初始化,当然不能调用了。

    展开全文
  • java中static方法与非static方法之间的调用关系,有以下四种:1、非static方法调用非static方法,直接通过方法名调用2、static方法调用static方法,直接通过方法名调用3、非static方法调用static方法,直接通过方法...

    java中static方法与非static方法之间的调用关系,有以下四种:

    1、非static方法调用非static方法,直接通过方法名调用

    2、static方法调用static方法,直接通过方法名调用

    3、非static方法调用static方法,直接通过方法名调用

    4、static方法调用非static方法,通过类对象来调用

    示例如下:

    package com.chendi.objectNav;
    
    public class MainClass {
    
        public static void main(String[] args){
            Circle circle = new Circle();
            Line line = new Line();
    
            //静态方法调用静态方法
            doSomeThing(circle);
            doSomeThing(line);
    
            //静态方法调用非静态方法
            MainClass mainClass = new MainClass();
            mainClass.noStatic();
    
        }
    
        public void noStatic(){
            //非静态方法调用非静态方法
            test1();
            //非静态方法调用静态方法
            test2();
    
        }
    
        public void test1(){
            System.out.print("1");
        }
    
        public static void test2(){
            System.out.print("2");
        }
    
        public static void doSomeThing(Shape shape){
            shape.erase();
        }
    }

    展开全文
  • Java中synchronized是用来表示同步的,synchronized可以用来修饰一个方法(static方法和非static方法),也可以用来修饰一段代码块; 修饰实例方法: public synchronized void x() throws InterruptedException { ...
  • Java中static方法和普通方法的区别

    千次阅读 2019-01-04 11:05:34
      注意:非静态方法既可以访问...非静态方法既可以访问静态方法又可以访问非静态方法,而静态方法只能访问静态数据方法。  原因:因为静态方法和静态数据成员会随着类的定义而被分配和装载入内存中,而非静态方...
  • static方法能否被重写

    万次阅读 多人点赞 2016-09-11 15:51:54
    在Java中,子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写(Override)。... 那么,我们便可以据此来对static方法
  • http://blog.csdn.net/zhouwubin123/article/details/6623308Java开发人员一定遇到过,在eclipse开发环境中,在包括main方法在内的static方法中调用某非静态变量,会编译出错。public class StaticDemo { int x; ...
  • 虽然知道,但是实际用起来时候还是不是特别清楚,这里转载两篇。 ...静态方法Static Method)与静态成员变量一样,属于类本身,在类装载的时候被装载到内存(Memor
  • Java的static方法与非static方法

    千次阅读 2017-04-18 21:40:42
    静态方法Static Method)与静态成员变量一样,属于类本身,在类装载的时候被装载到内存(Memory),不自动进行销毁,会一直存在于内存中,直到JVM关闭。 非静态方法(Non-Static Method)又叫实例化方法,属于...
  • 也就是说,当一个static方法被调用的时候,可能还没有创建任何的实例对象,如果从一个static的方法中发出来对非static方法的调用,那个非static方法是关联到那个逻辑上的呢,这个逻辑无法成立,所以,一个static的...
  • 一个方法用static修饰,便是静态方法或类...所以,在static方法内部无法直接调用非static方法(可以通过先实例化对象,再用该对象调用非static方法),但非static方法中可以调用static方法,通过类.方法名()的方式。
  • JAVA8中接口interface引入方法实现的猜想在JAVA8之前java中的接口类型旨在定义类型的接口规约,并不能拥有自己的方法实现,具体实现完全交由实现类自己完成。以普通人和中上阶层为例,为各自的子女读大学的目标: ...
  • static方法使用mapper

    千次阅读 2019-06-02 21:39:57
    @Component public class CurrentUserInfo { @Autowired private UserownerMapper userownerMapper... private static CurrentUserInfo currentUserInfo; @PostConstruct public void init(){ currentUserIn...
  • 类锁和对象锁,synchronized修饰static方法与非static方法的区别 当synchronized修饰一个static方法时,多线程下,获取的是类锁(即Class本身,注意:不是实例), 作用范围是整个静态方法,作用的对象是这个类的...
  • “覆盖”只有在某方法是基类的接口的一部分时才会出现。即,必须能将一个对象向上转型为它的基本类型并调用相同的方法。 class StaticSuper{ public static void staticGet() { System.out.println(...
  • java中static方法的使用问题

    千次阅读 2017-03-05 23:30:56
    遇到一个问题:如图所示,在改行中IDE给出warning: The static method print() from the type ...把print()方法中的static去掉; 把text去掉,直接调用print()方法; 简单来说: 这个是警告,不是错误,不影响使用
  • 父类 public class TestA { public static int a=0; public int b=0; public static int c=0; public static void print(){ System.out.println("我也用"); } public void hello(){
  • 接口中的default方法和static方法

    千次阅读 2019-02-24 20:02:29
    Java接口中的default方法和static方法。default方法由接口实现类来调用 static将由接口(或其实现类)直接调用(实际上实现类调用不到) 接口中的静态方法实现类无法继承,default方法实现类可以继承。 一般情况下...
  • static方法使用@Autowired

    千次阅读 2018-11-29 11:09:55
    set注入失败 构造器注入成功 @Component @Slf4j public class ... private static RedisTemplate<String, String> redisTemplate; private static JWTUtils jwtUtils; @Autowired pu...
  • 首先介绍一下java中获取项目路径的常规方法:(根据个人需要看是否添加:.substring(1)去掉第一个字符"/") (1):this.getClass().getResource("xxx.xml").getPath(); (2):file.getCanonicalPath(); (3):...
  • synchronized static和synchronized 关键字1.synchronized satic 方法,如果是一个方法加上static关键字和synchronized。static一定不属于任何对象,属于一个类。那么它锁的是当前类的对象的class对象。因为Java中...
  • 文章目录1、示例2、分析3、HOW4、WHY5、DO6、结论 1、示例 /** * @description: * @Date : 2020/3/3 下午6:30 * @Author : 石冬冬-Seig Heil ... public static void main(String[] args) { for ...
  • 当使用static的变量或者方法的时候我经常不注意,会产生一个警告。 The static field User.statid should be accessed in a static way 为何产生这个警告,如何解除这个警告呢,根据警告的提示,我将警告部分...
  • 我用的框架是springboot,我要实现的是在工具类中有static方法里用到注入的变量。但是普通的那种注入,是不起作用的。 解决办法:先定义要注入的变量,并且用static修饰;然后注入一个非static修饰的同类变量;然后...
  • java static方法不能被重写

    千次阅读 2018-04-04 14:27:14
    语法上子类允许出现和父类只有方法体不一样其他都一模一样的static方法,但是在父类引用指向子类对象时,通过父类引用调用的依然是父类的static方法,而不是子类的static方法。 即:语法上static支持重写,但是运行...
  • Static方法是类方法,先于任何的实例(对象)存在。 即Static方法在类加载时就已经存在了(JAVA虚拟机初始化时),但是对象是在创建时才在内存中生成。 而this指代的是当前的对象。 static叫静态方法,也叫类方法...
  • static void hello(String input) { System.out.println("UpClass: " + input); } void hello2(String input) { System.out.println("UpClass: " + input); } } public class ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,491,384
精华内容 1,396,553
关键字:

static方法