解疑初学java比较迷惑的地方

大一时开始学习java,知道现在开始做项目用于实践当中才真正的明白它的一些基本的方法。

我就用一个实例来解读最基本的java思想

package test.java;

/**
 * 此类用来测试一些最基本的java编程思想
 */
public class Person {
	private String name;// 声明成private只有在类的内部才能用(类名.)的方法调用。
	public int age;//共有成员变量
	protected final int headNum = 1;// 1.声明称protected一般情况下是为了继承,只有在一个包中的类才能访问。2.声明为final的成员变量的值不能再次被更改。

	/**
	 * 所有的变量无论声明成私有的还是共有的都能够通过调用类中的方法来获得
	 */
	public String getName() {//get方法用于获取成员变量的值
		return name;
	}

	public void setName(String name) {//set方法用于给成员变量赋值
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public int getHeadNum() {
		return headNum;
	}

	@Override
	public String toString() {// toString是为了能够方便的输出类所有的成员变量,若果不构建toString方法无法直接输出一个类。
		return "Person [name=" + name + ", age=" + age + ", headNum=" + headNum
				+ "]";
	}

	public static void cout() {// 声明成静态方法可以不用构建类直接使用,也可以在类外通过(类名.)调用。
		System.out.println("aa");
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Person person = new Person();
		person.name = "aa";//在自己的main方法中可以这样使用,但在其他类中不能。
	}

}
接下来是测试类:

package test.java;

public class Test {
	/**测试
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Person.cout();//在其他类中静态方法的使用
		Person person=new Person();
		person.setName("aa");//只能用set方法给name赋值不能用person.name="a";		
		person.age=1;//由于age声明成了共有变量因此可以这样
		System.out.println(person.headNum);
		System.out.println(person);
	}

}
另外再说一下另一个比较迷惑人的地方:方法参数的传递

参数传递的实质类似于一条赋值语句,将实参保存值的副本传递给形参。因此对形参的任何修改都不会影响实参的值。

但是需注意:如果将一个对象传递给一个方法,实际上传递的是这个对象的引用,复制给形参的是这个对象的地址,因此形参名和实参名互成了对方的别名。如果通过被调用的形参引用而改变的对象的状态,也就改变了实参引用的对象。若果改变了形参引用本身(使其指向一个新对象),并不影响实参,实参仍然指向原对象。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值