Java方法

Java中的方法分为很多说种,有main方法,类方法,实例方法,静态方法,构造方法,普通方法,抽象方法,对象方法,接口方法。

main方法是JVM调用类中的方法,只有通过它,jvm才能编译运行其它方法。

类方法

类方法是静态方法,方法前面余姚static修饰符来修饰,类方法内不能涉及有关变量的内容

类方法不能调用调用类的对象方法

类方法不能引用对象变量

类方法不能被重写或者覆盖

类方法不能使用super,this关键字。

类方法不需要对象访问,类名可以直接访问。

 在java中,静态方法指被static修饰的成员方法。静态方法不需要通过它所属的类的任何实例就可以被调用,因此在静态方法中不能使用this关键字,也不能直接访问所属类的实例变量和实例方法,但是可以直接访问所属类的静态变量和静态方法。

实例方法

实例方法也叫做对象方法。
类方法是属于整个类的,而实例方法是属于类的某个对象的。

(1) 对象方法中可以引用对象变量,也可以引用类变量;
(2) 对象方法中可以调用类方法;
(3) 对象方法中可以使用super、this关键字。

   在程序设计中,一些通用的、公用型的方法与类的对象无关,因此常常被作为类方法实现。如Java类库中Math类,其中多数的数学运算操作都被定义成静态方法。因此,可以使用类方法把一些通用的、公用型的方法放在合适的类中,从而很好地将它们组织起来。应用程序中的主方法main就是类方法。

 构造方法

      已经看到,当我们创建对象时,必须执行调用到 new 类名(),其实new后面的类名()也是一个方法,它是一个特殊的方法,我们把它称之为构造方法.但是马上有人就会发现,那为什么在我们的类中没有写这样一个方法呢,那是因为,当你没有手写构造方法,我们的java虚拟机会帮你创建一个空的构造方法,构造方法可以被重写调用。

构造方法名字与类名相同,它不会有返回值,可以有return但是不能返回一个值。

构造方法被重载后,jvm不在为程序自动生成该构造方法。

抽象方法和抽象类

抽象方法有abstract修饰符修饰

 父类的方法本身不需要实现任何功能,仅仅定义方法签名,目的是让子类去实现它,可以定义为抽象方法

抽象方法所在的类一定是抽象类,抽象类不一定有抽象方法

接口方法 

接口只提供方法名,底层实现代码是隐藏的。

 实现结果:

 附上源码:

public class Demo {  //定义Demo类
   static int num=1;       //定义num属性并赋值为1
          int num2 = 2;


    public static void leiMethod(){      //类方法,静态方法,可以直接通过类名调用
        System.out.println("这个一个类方法");
        System.out.println(num);
        //System.out.println(num2);//类方法也就是静态方法,不能调用非静态属性
    }

    public void trueMehtod(){          //实例方法,
        System.out.println(num);
        System.out.println(num2);     //实例方法也就是对象方法,可以调用静态和非静态属性,但是需要对象来调用方法
        System.out.println("这是一个实例方法");
    }

    public Demo(){
        System.out.println("这个一个构造方法");
    }



    public static abstract class Father {   //抽象类
     public  abstract void father();  //抽象方法,抽象的类和方法都没有方法体
    }

      public static class  Son extends Father{  //一个类作为抽象类的子类要么为抽象类,或者重写父类的所有抽象方法

        @Override
        public void father() {   //重写所有方法
            System.out.println("这是抽象类的子类");
        }
    }

    abstract class  Son1 extends Father{  //抽象子类

    }



    public  interface Jie{    //接口
        /**
         * 方法一
         */
        public void out();   //只声明不实现
    }
      static class Jiekou implements Jie{  //继承接口

        @Override
        public void out() {
            System.out.println("这是接口方法,继承实现接口");
        }
    }




    public static void main(String[] args) {    //main方法
        System.out.println("main方法");

        Demo.leiMethod();//调用类方法

        Demo demo = new Demo(); //调用一次构造方法
        demo.trueMehtod();//调用实例方法需要用对象来调用

        Son son = new Son(); //创建抽象子类对象
        son.father();        //对象调用方法

       Jie j = new Jiekou();  //创建接口实现类对象
          j.out();               //调用
    }

}

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值