• 疯狂java学习笔记之面向对象(三)


    方法的所属性:
      从语法的角度来看:方法必须定义在类中

      方法要么属于类本身(static修饰),要么属于实例 -- 到底是属于类还是属于对象? 有无static修饰

      调用方法时:必须有主调对象(主语,调用者)

    1 public class MathTest{
    2     public static void main(String[] args){
    3         System.out.println(Math.sin(1.57));
    4         System.out.println(Math.sin(Math.PI/2));
    5     }
    6 }
     1 public class TestMethod {
     2     String name;
     3 
     4     //自定义带参数的构造器后,系统不会再为类提供无参构造器
     5     //注意:若程序员没有构造器,系统默认会为类提供一个无参构造器
     6     public TestMethod(String name){
     7         this.name = name;
     8     }
     9         
    10     public void walk(){
    11         System.out.println(this.name + "在走路");
    12     }
    13 
    14     public void run(){
    15         //TestMethod t = new TestMethod("老A");
    16         //t.walk();
    17         //方法中看不出this代表谁,谁调用它就代表谁,这里是tt调用run的,所以this代表tt
    18         this.walk();
    19         System.out.println(this.name + "在跑步");
    20     }
    21 
    22     public static void main(String[] args) {
    23         TestMethod tt = new TestMethod("老C");
    24         tt.run();    
    25     }
    26 }

    方法值传递:

      Java方法的参数传递机制"值传递/副本传递",它并不会把方法中的值传递过去,而是通过副本的形式传递的

      形参个数可变的方法type... 形参名

     1 class TestArgs {
     2     public void age(int age) {
     3         System.out.println("a的年龄为:" +age);
     4     }
     5 
     6     //int... 表示可以传入多个int类型的参数
     7     public void test(int... ages){
     8         //在该方法中ages 相当于一个数组
     9         for(int ag : ages){
    10             System.out.println("b的年龄为:" + ag);
    11         }
    12     }
    13 
    14     public static void main(String[] args) {
    15         //定义一个ta变量指向TestArgs实例,因为类中方法都是实例方法,所以必须创建实例才能调用
    16         TestArgs ta = new TestArgs();
    17         ta.age(22);
    18         System.out.println("~~~~~~~~~~~~~~~~~~~~~");
    19         ta.test(10,20,11,23,55,19,44,68);
    20     }
    21 }

    注意:

      A、每个方法最多只能有一个形参个数可变的参数public void test(int... nums,String... name)×
      B、形参个数可变的参数必须位于最后
        public void test(int... nums,String name) ×
        public void test(String name,int... nums) √

  • 相关阅读:
    Windows API 中 OVERLAPPED 结构体 初始化
    QString 转换成 wchar 的一个小陷阱
    Windows VHD Create, Attach, 获得Disk序号
    Programmatically mount a Microsoft Virtual Hard Drive (VHD)
    chcp437 转换英语,在西班牙语系统中无效
    Windows 版本 Enterprise、Ultimate、Home、Professional
    openssl 查看证书
    Ubuntu 搜索文件
    微软的 Sysinternals 系统管理工具包,例如可找出自动启动的流氓软件
    HTML 表格实例
  • 原文地址:https://www.cnblogs.com/dtest/p/4158092.html
Copyright © 2020-2023  润新知