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

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

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

 public class MathTest{
public static void main(String[] args){
System.out.println(Math.sin(1.57));
System.out.println(Math.sin(Math.PI/2));
}
}
 public class TestMethod {
String name; //自定义带参数的构造器后,系统不会再为类提供无参构造器
//注意:若程序员没有构造器,系统默认会为类提供一个无参构造器
public TestMethod(String name){
this.name = name;
} public void walk(){
System.out.println(this.name + "在走路");
} public void run(){
//TestMethod t = new TestMethod("老A");
//t.walk();
//方法中看不出this代表谁,谁调用它就代表谁,这里是tt调用run的,所以this代表tt
this.walk();
System.out.println(this.name + "在跑步");
} public static void main(String[] args) {
TestMethod tt = new TestMethod("老C");
tt.run();
}
}

方法值传递:

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

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

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

注意:

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

疯狂java学习笔记之面向对象(三) - 方法所属性和值传递的更多相关文章

  1. 疯狂java学习笔记之面向对象(一) - 定义类、方法、构造器

    Java面向对象 1.定义类 2.创建对象.调用方法 类和对象: 某一类对象的概念定义. 比如:人类 - 抽象出来的概念(不特指某个人) 对象 - 在类的概念下产生的一个实例,它就是一个对象了. ja ...

  2. 疯狂java学习笔记之面向对象(六) - 构造器重载、方法重载和方法重写

    一.方法重载(Overload): Java允许同一个类中定义多个同名方法,只要形参不一样就可以,如果同一个类中包含了两个或两个以上方法名相同的方法,但形参列表不同,则被成为方法重载(两同一异). 同 ...

  3. 疯狂java学习笔记之面向对象(八) - static和final

    一.static: 1.static是一个标识符: - 有static修饰的成员表明该成员是属于类的; - 没有static修饰的成员表明该成员是属于实例/对象的. 2.static修饰的成员(Fie ...

  4. 疯狂java学习笔记之面向对象(五) - 封装、继承、多态

    一.封装: 封装的概念: - 合理的隐藏:隐藏不想被外界操作的Field.方法.构造器 - 合理的暴露:一般就是希望给别人调用的方法 e.g:显示器(按键暴露出来操作,但实际的东西/细节方法被隐藏起来 ...

  5. 疯狂java学习笔记之面向对象(九) - 抽象和接口

    一.抽象(abstract): 1.抽象类: 使用abstract修饰的类就是抽象类; 相比于普通类抽象类增加了支持抽象方法的功能,但也丢失了创建实例的功能(抽象类中不能创建实例),其他普通类有的抽象 ...

  6. 疯狂java学习笔记之面向对象(四) - this关键字

    Java中this关键字主要有以下两个方法: 1.this引用 - 可用于任何非static修饰的方法和构造器中,当this用于方法中时,它代表调用该方法的实例/对象;当this用于构造器中时,它代表 ...

  7. 疯狂java学习笔记之面向对象(二) - 成员变量与局部变量

    Java变量按其作用域可分为:成员变量和局部变量.注意:在Java中是没有全局变量这个概念的 一.成员变量: 成员变量是在类中定义的变量,具体可分为类变量与实例变量--有无static修饰 实例变量的 ...

  8. 疯狂java学习笔记之面向对象(七) - super关键字

    super有以下两大作用: 1.起限定作用:强制去访问父类的成员(Field.方法) 2.起调用作用:指定/显示调用父类的某个构造器 super调用规则: 1.子类构造器总会调用父类构造器一次,默认情 ...

  9. Java学习笔记之---面向对象

    Java学习笔记之---面向对象 (一)封装 (1)封装的优点 良好的封装能够减少耦合. 类内部的结构可以自由修改. 可以对成员变量进行更精确的控制. 隐藏信息,实现细节. (2)实现封装的步骤 1. ...

随机推荐

  1. Android 实现类似微信客户端朋友圈更新提示的小红点&栏目订阅

    用到的类: com.jauker.widget.BadgeView 实现代码: BadgeView imageBadge = new BadgeView(getContext()); imageBad ...

  2. nyoj744(位运算)

    题目:http://acm.nyist.net/JudgeOnline/problem.php?pid=744 思路:a^b可以得到a~b间任意两个数异或运算的长度的最大值,设为n,答案为:pow(2 ...

  3. entOS7安装iptables防火墙,试验未通过

    CentOS7默认的防火墙不是iptables,而是firewalle. 安装iptable iptable-service #先检查是否安装了iptables service iptables st ...

  4. C++动态数组

    一: 一维数组初始化 标准方式1:int value[100]; //value[i]的值不定,因为没有初始化:标准方式2:int value[100] = {1,2,3}; //value[0],v ...

  5. Ext Js【Hello World】 ——4.1 beta 1

    准备:vs+ExtJs4.1Beta1 ExtJS 4.1  xiazai_ https://yunpan.cn/cqv6bdBwtRjAj (提取码:2733) 引用,cs文件,js主入口,zh—c ...

  6. Delphi线程基础知识

    参考http://blog.chinaunix.net/uid-10535208-id-2949323.html 一.概述 Delphi提供了好几种对象以方便进行多线程编程.多线程应用程序有以下几方面 ...

  7. 无废话ExtJs 入门教程四[表单:FormPanel]

    无废话ExtJs 入门教程四[表单:FormPanel] extjs技术交流,欢迎加群(201926085) 继上一节内容,我们在窗体里加了个表单.如下所示代码区的第28行位置,items:form. ...

  8. spring 集成 log4j 配置

    在web.xml中增加如下代码: <context-param> <param-name>log4jConfigLocation</param-name> < ...

  9. android 入门-库的生成jar 和引用jar

    开发环境 1.eclipse 2.android studio 步骤 1.在eclipse 生成 jar包 2.在android studio 引用 jar包 实现步骤 1.在eclipse 创建一个 ...

  10. C++Primer快速浏览笔记-类型转换

    bool b = 42; // _b is true_ int i = b; // _i has value 1_ i = 3.14; // _i has value 3_ double pi = i ...