JAVA_learning6

this 关键字

this是一个引用,你对哪个方法定义,它就是那个方法的引用
一般出现在方法声明里面,指向自身的对象
example

public class Leaf{
	int i = 0;//成员变量
	Leaf (int i) {//形参 i
		this.i = i;//就近声明,i指的是形参i,this.i指的是成员变量
	}
	Leaf increament(){//这个方法的返回值类型是Leaf
		i++;
		return this;//this是指向Leaf的一个引用
	}

	void print() {
		System.out.println("i = " + i);
	}

	public static void main(String[] args[]){
		Leaf leaf = new Leaf(100);
		leaf.increament().increament().print();
	}
}

static

用static声明的成员变量为静态成员变量
静态的成员变量只会在数据共享区中维护一份,
而非静态成员变量的数据会在每个对象中都维护一份的。

public class Cat{
	private static int sid = 0;//静态成员变量存放在data segment中,而且只会有一个,
	private String name;//如果去掉static,那么sid会变成一般成员变量,即每一个Cat中都会存在一个相应的sid
	int id;
	Cat(String name){
		this.name = name;
		id = sid ++;
	}

	public void info{
		System.out.println("My name is " + name + " No." + id);
	}

	public static void main(String args[]){//这里加上static,就让main方法可以无需对象运行
		Cat.sid = 100;//类名+.可以直接访问该静态,而不用先new一个对象
		Cat  mimi = new Cat("mimi");
		mimi.info();
	}
}

图1.sid为静态
图2.sid非静态

package 和 import语句

example

被封装在.\animal\size_small下的Dog

package animal.small_size;

public class Dog{
	public static void main(String args[]){
		System.out.println('1');
	}
}

调用Dog的Cat

public class Cat{
	public static void main(String args[]) {
		animal.small_size.Dog d = new animal.small_size.Dog();
	}
} 

将类放在包里面,这个类文件的第一段代码必须为

package  animal.size_small;

同时.class文件必须在对应包名文件夹下

.\animal\size_small\Dog.class

最后,在其他文件中引用时,类名必须写完整

animal.size_small.Dog d = new animal.size_small.Dog();
//或者在代码中引入
import animal.size.small.Dog;

要保证某个包一定能被找到,可以在classpath里面添加这个包的最上层目录的父目录

C:\Users\Administrator\Pictures

此外,在执行封装在包里面的类文件时,需要在该类文件最上层目录的父目录下运行,而且还要加上完整类名

cmd
	cd C:\Users\Administrator\Pictures
	java animal.samll_szie.Dog
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值