Java学习日记------面向对象④

一、体会可变个数的形参

1.格式:对于方法的形参 数据类型 ...形参名

2.可变形参的方法与同名的方法构成重载

3.可变个数的形参在调用时个数从0开始到无穷多个都可以。

4.使用可变个数的形参与方法的形参使用使用数组是一致的。

5.若一个方法中有可变个数的形参,那么一定要声明在方法形参的最后。

package day04;

public class TestArgs {
public static void main(String[] args) {
    TestArgs c=new TestArgs();
    c.Print("Hello");
    c.Print("Hello"+"world");
    c.Print(5, "你好方法重载!");
}
public void Print(String ... arr) {
    for(int i=0;i<arr.length;i++) {
        System.out.println(arr[i]);
    }
}
public void Print(int j,String ...arrr) {
    System.out.println(j);
    for(int i=0;i<arrr.length;i++) {
        System.out.println(arrr[i]);
    }
}
}

二、方法的参数传递

java中的参数传递机制:值传递机制
* 1)形参是基本数据类型的

package day04;
/*
 * java中的参数传递机制:值传递机制
 * 1)形参是基本数据类型的,将实参的值传递给形参
 * 2)形参是引用数据类型的
 */
public class TestArgsTransfer {
    public static void main(String[] args) {
        TestArgsTransfer tt=new TestArgsTransfer();

        int i=10;
        int j=5;
        System.out.println("i:"+i+"   j:"+j);

        //交换变量的值
        int temp=i;
        i=j;
        j=temp;
        System.out.println("i:"+i+"   j:"+j);

        tt.swap(i, j);//i:5  j:10   没有交换
        //将i的值传递给了M,将j的值传递给了N.操作仅仅是在tt.swap()内,而并不影响i和j.
        System.out.println("i:"+i+"   j:"+j);
}
    public void swap(int M,int N) {
        int temp=M;
        M=N;
        N=temp;
        System.out.println("M:"+M+"   N:"+N);
    }
}

* 2)形参是引用数据类型的:将实参的引用类型变量的值(对应的堆空间的实体对象的首地址)传递给形参的引用变量。

package day04;
/*
 * 对于引用数据类型的值传递
 */
public class TestArgsTransfer1 {
    public static void main(String[] args) {
        TestArgsTransfer1 dd=new TestArgsTransfer1();
        DataSwap gg=new DataSwap();
        System.out.println("gg.i:"+gg.i+"     gg.j:"+gg.j     );
        dd.swap(gg);
        System.out.println("gg.i:"+gg.i+"     gg.j:"+gg.j     );
    }
    public void swap(DataSwap tt) {
        int temp=tt.i;
        tt.i=tt.j;
        tt.j=temp;
    }
}
class DataSwap {
    int i=10;
    int j=5;
}

原文地址:https://www.cnblogs.com/Gaohy/p/8506843.html

时间: 2024-10-14 16:50:26

Java学习日记------面向对象④的相关文章

Java学习日记------面向对象①

1 package com.atguigu.java; 2 /* 3 理解1:人开门 4 面向过程:人 打开 门 5 面向对象: 6 人{ 7 打开(门){ 8 门.开开(): 9 } 10 } 11 12 门{ 13 开开(){ 14 } 15 } 16 */ 17 /*理解二:人把大象装冰箱 18 *面向过程:1)打开冰箱2)把大象装进去3)关闭冰箱门 19 *面向对象: 20 *人{ 21 * 打开(冰箱){冰箱.开开} 22 * 操作(大象){大象.进入(冰箱)} 23 * 关闭(冰箱)

Java学习日记------面向对象②

2018-03-01 1.创建Java类并实例化 package day02; /* * 面向对象思想的落地法则一: * 1.设计类,并设计类的成员(成员变量和·成员方法) * 2.通过类,来创造类的对象(也成为类的实例化) * 3.通过"对象.属性"或"对象.方法"来调用. */ public class zoo { public static void main(String[] args) { //基本数据类型的声明:数据类型 变量名=初始化值 //int i

Java学习日记------面向对象③

Java类的设计和使用练习 package day3; public class TestPerson1 { public static void main(String[] args) { Person1 a1=new Person1(); a1.study(); a1.showage(); a1.addAge(2); a1.Display(); } } class Person1{ String name; int age; boolean sex; public void study()

Java学习日记(一)基础

标识符: 由26个英文字母大小写,数字:0-9 符号:_ $ 组成 定义合法标识符规则: 1.数字不可以开头. 2.不可以使用关键字. 3.Java中严格区分大小写. Java中的注释格式: 单行注释: 格式: //注释文字 多行注释: 格式: /* 注释文字*/ 文档注释: 格式:/** 注释文字 */ 常量: 常量表示不能改变的数值. java中常量的分类: 1.整数常量.所有整数 2.小数常量.所有小数 3.布尔型常量.较为特有,只有两个数值.true 和false. 4.字符常量.将一个

java学习日记第一天

java 学习日记 第一天 java学习准备工作 首先环境配置:一个是jdk安装,另一个编译工具 eclipse ,安装下载教程网上很多 找了一个照着做就行 : 上述步骤完成,我们就可以打开eclipse进行我们第一个程序的编写啦当然是编写我们熟悉的helloWorld创建一个Java Perfect 目前好像基本都习惯用工程管理我们就建一个java工程然后点开工程在src右键new一个class,不用问这是啥这是啥,先把程序跑起来,慢慢就懂了我们在{}写我们的程序,这就好比helloworld

Java学习日记 week3 面向对象2:封装,继承,多态

一 .包(package) 1.package: 为什么需要package? 为了解决类之间的重名问题. 为了便于管理类:合适的类位于合适的包! package怎么用? 通常是类的第一句非注释性语句. 包名:域名倒着写即可,再加上模块名,并与内部管理类. 其实内部实现就是靠目录结构来做到的. com.sun.test com.oracle.test(com.oracle.test.test1)是两个不同的包: 2.JDK中的主要包: java.lang-包含一些Java语言的核心类,如Strin

2019-05-17 Java学习日记之面向对象_多态&amp;抽象类&amp;接口

多态 多态的概述: A:多态(polymorphic) 事物存在的多种形态 B:多态前提 a:要有继承关系 b:要有方法重写c:要有父类引用指向子类对象 多态中的成员访问特点之成员变量: 成员变量:编译看左边(父类),运行看左边(父类)多态中的成员访问特点之成员方法:成员方法:编译看左边(父类),运行看右边(子类)多态中的成员访问特点之静态成员方法:静态方法:编译看左边(父类),运行看左边(父类)(静态和类相关,算不上重写,所以访问还是左边的)只有非静态的成员方法,编译看左边,运行看右边 多态的

2019-05-15 Java学习日记之面向对象_构造方法&amp;静态static

构造方法 构造方法constructor概述和格式: A:构造方法概述和作用 给对象的数据(属性)进行初始化 B:构造方法的格式特点 a:方法名与类名相同(大小也要与类名一致) b:没有返回值类型,连void都没有 c:没有具体的返回值return 注意事项: 1.构造方法不能用对象调用 2.构造方法也是有return语句的,格式是return 构造方法的重载和注意事项: 注意事项: a:如果我们没有给出构造方法,系统将自动提供一个无参构造方法 b:如果我们给出了构造方法,系统将不再提供默认的无

Java学习之面向对象一

1 面向对象 1.1     理解什么是面向过程.面向对象 面向过程与面向对象都是我们编程中,编写程序的一种思维方式. l  面向过程的程序设计方式,是遇到一件事时,思考"我该怎么做",然后一步步实现的过程. 例如:公司打扫卫生(擦玻璃.扫地.拖地.倒垃圾等),按照面向过程的程序设计方式会思考"打扫卫生我该怎么做,然后一件件的完成",最后把公司卫生打扫干净了. l  面向对象的程序设计方式,是遇到一件事时,思考"我该让谁来做",然后那个"