疯狂java学习笔记之面向对象(三) - 方法所属性和值传递
方法的所属性:
从语法的角度来看:方法必须定义在类中
方法要么属于类本身(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学习笔记之面向对象(三) - 方法所属性和值传递的更多相关文章
- 疯狂java学习笔记之面向对象(一) - 定义类、方法、构造器
Java面向对象 1.定义类 2.创建对象.调用方法 类和对象: 某一类对象的概念定义. 比如:人类 - 抽象出来的概念(不特指某个人) 对象 - 在类的概念下产生的一个实例,它就是一个对象了. ja ...
- 疯狂java学习笔记之面向对象(六) - 构造器重载、方法重载和方法重写
一.方法重载(Overload): Java允许同一个类中定义多个同名方法,只要形参不一样就可以,如果同一个类中包含了两个或两个以上方法名相同的方法,但形参列表不同,则被成为方法重载(两同一异). 同 ...
- 疯狂java学习笔记之面向对象(八) - static和final
一.static: 1.static是一个标识符: - 有static修饰的成员表明该成员是属于类的; - 没有static修饰的成员表明该成员是属于实例/对象的. 2.static修饰的成员(Fie ...
- 疯狂java学习笔记之面向对象(五) - 封装、继承、多态
一.封装: 封装的概念: - 合理的隐藏:隐藏不想被外界操作的Field.方法.构造器 - 合理的暴露:一般就是希望给别人调用的方法 e.g:显示器(按键暴露出来操作,但实际的东西/细节方法被隐藏起来 ...
- 疯狂java学习笔记之面向对象(九) - 抽象和接口
一.抽象(abstract): 1.抽象类: 使用abstract修饰的类就是抽象类; 相比于普通类抽象类增加了支持抽象方法的功能,但也丢失了创建实例的功能(抽象类中不能创建实例),其他普通类有的抽象 ...
- 疯狂java学习笔记之面向对象(四) - this关键字
Java中this关键字主要有以下两个方法: 1.this引用 - 可用于任何非static修饰的方法和构造器中,当this用于方法中时,它代表调用该方法的实例/对象;当this用于构造器中时,它代表 ...
- 疯狂java学习笔记之面向对象(二) - 成员变量与局部变量
Java变量按其作用域可分为:成员变量和局部变量.注意:在Java中是没有全局变量这个概念的 一.成员变量: 成员变量是在类中定义的变量,具体可分为类变量与实例变量--有无static修饰 实例变量的 ...
- 疯狂java学习笔记之面向对象(七) - super关键字
super有以下两大作用: 1.起限定作用:强制去访问父类的成员(Field.方法) 2.起调用作用:指定/显示调用父类的某个构造器 super调用规则: 1.子类构造器总会调用父类构造器一次,默认情 ...
- Java学习笔记之---面向对象
Java学习笔记之---面向对象 (一)封装 (1)封装的优点 良好的封装能够减少耦合. 类内部的结构可以自由修改. 可以对成员变量进行更精确的控制. 隐藏信息,实现细节. (2)实现封装的步骤 1. ...
随机推荐
- September 22nd 2016 Week 39th Thursday
Things won are done, the soul of joy lies in the doing. 得到即是完结,快乐的精髓在于过程. Things won are done, thing ...
- 立方体旋转 【web前端学习部落22群120342833】
效果: HTML部分: <body class="body"> <div class="rect-wrap"> <!-- // ...
- 模拟赛1102d1
炮(cannon)[题目描述]众所周知,双炮叠叠将是中国象棋中很厉害的一招必杀技.炮吃子时必须隔一个棋子跳吃,即俗称"炮打隔子". 炮跟炮显然不能在一起打起来,于是rly一天借来了 ...
- Linear regression with one variable算法实例讲解(绘制图像,cost_Function ,Gradient Desent, 拟合曲线, 轮廓图绘制)_矩阵操作
%测试数据 'ex1data1.txt', 第一列为 population of City in 10,000s, 第二列为 Profit in $10,000s 1 6.1101,17.592 5. ...
- 面向对象的小demo
两个类如下 package cao.com.duixiang; import java.util.Arrays; public class OtherTest { //求max public int ...
- Git - 使用指南
GIT (分布式版本控制系统) 编辑 Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目.[1] Git的读音为/gɪt/. Git是一个开源的分布式版本控制系统,可以 ...
- Python读取xml报错解析--ExpatError: not well-formed (invalid token)
xml文件内容如代码所示存入的名字为login.xml: <?xml version="1.0" encoding="utf-8"?> <in ...
- Bootstrap – 1.认识
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- Swing布局基础
虽然很简单,但还是记录一下,以备复查. 1.BorderLayout ,这是JFrame的默认布局方式,基于此的新组件,例如BUTTON,可以放在东西南北中的某一个位置,如果不指定,则默认是中央.中央 ...
- apache lucene solr 官网历史版本下载地址
官网上一般只提供最新版本的下载,下面两个链接为所有历史版本的下载地址: lucene地址:archive.apache.org/dist/lucene/java/ solr地址:archive.apa ...