zoukankan      html  css  js  c++  java
  • java基础学习(一)

         去年10月份从学校出来实习,从事javaWeb方面的开发。到现在已经快1年了。突然间感觉自己的java基础知识忘记的很厉害,或者说知识掌握的不牢吧。回顾自己学习java,发现我竟然一本关于java基础的书籍都没有看,以前都是看的视频进行学习的。现在想好好补下基础。先从看《head first java》这本书开始吧。

         今天在公交上看来一个比较有意思的程序。如下:

    当时看了下,弄了好一会,没弄不来。。。。看了答案了后觉得很有意思。答案我就不贴不来了。以后回顾时,应该可以想起来吧~~

    java参数值的传递,java是通过值传递,也就是说通过拷贝传递。实参和形参是两个不同变量。对于原声数据类型来说,实参和形参没有任何关系,是两个不同的变量,但是对于引用数据类型,形参和实参虽然是两个不同变量,但是他们指向同一对象,对其中一个的改变会影响到另外一个。代码如下:

    public class Person {
    	private int age;
    	private String name;
    	public Person(int age,String name){
    		this.age = age;
    		this.name = name;
    	}
    	public int getAge() {
    		return age;
    	}
    	public void setAge(int age) {
    		this.age = age;
    	}
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	
    }
    public class Test01 {
    	static void changeParam(int param){
    		param = param + 3;
    	}
    	static void changeParam(Person p){
    		p.setAge(34);
    	}
    	public static void main(String[] args) {
    		int param = 3;
    		System.out.println("before:"+param);
    		changeParam(param);
    		System.out.println("after:"+param);
    		
    		Person p = new Person(13,"zhongqian");
    		System.out.println("before:"+p.getAge());
    		changeParam(p);
    		System.out.println("after:"+p.getAge());
    	}
    }


    运行结果:

    如果参数是原声数据类型,形参的改变不会影响到实参;如果参数是引用数据类型,形参的改变会影响到实参。

  • 相关阅读:
    LeetCode Subsets II
    LeetCode Rotate Image
    LeetCode Palidrome Number
    LeetCode Generate Parentheses
    LeetCode Maximum Subarray
    LeetCode Set Matrix Zeroes
    LeetCode Remove Nth Node From End of List
    Linux Loop设备 使用
    Linux 文件系统大小调整
    LeetCode N-Queens II
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3358228.html
Copyright © 2011-2022 走看看