《Head First Java》3.1

这篇博客探讨了Java编程中的核心概念,包括对象引用、方法返回值、封装、数组操作以及Java函数库的使用。讲解了如何通过Setter方法进行实例变量的存取,并强调了局部变量和实例变量的区别。此外,还介绍了for循环和while循环的用法,以及ArrayList类在动态数组中的优势。最后,提到了布尔表达式和不同的运算符。

引用对象的变量所携带的是远程控制而不是对象本身。方法只可以有一个返回值。必须明确转换。
封装:创建Setter这个方法给所有的示例变量,用Stter来存取。任何有值可以被运用到的地方,都可用调用方法的方式来取得该类型的值。

class GoodDog{
	prinvate int size;

	public int getsize(){
		return size;
	}

	public void setsize(){
		size=s;
	}
}

调用数组中的对象:
1.声明一个装载7个Dog引用的Dog数组。

Dog[]  pets ;
pets = new Dog[ 7 ] ;

2.创建两个Dog对象并赋值为数组的前两个元素。

pets[ 0 ] = new Dog( ) ;
pets[ 1 ] = new Dog( ) ;

3.调用这两个Dog对象的方法。

pets[ 0 ].setSize(30);
int x = pets[ 0 ].getSize( );
pets[ 1 ].setSize(8);

声明与初始化实例变量:实例变量有默认值,如果你没有明确给它赋值,没有调用setter,实例变量还是会有值。int的默认值为0,float的默认值为0.0,bool的默认值为false,references的默认值为null。
实例变量与局部变量之间的差别:局部变量没有默认值,局部变量是声明再方法中的,必须在使用前进行初始化,而实例变量是声明再类内而不是方法中。
变量的比较:可以用==判断两个引用是否指向同一对象。

编写程序

创建一个类似战舰的游戏,首先玩家启动游戏,游戏开始,提示玩家输入坐标,检查是否命中,重复操作直至所有达康网站被歼灭为止,统计游戏分数,游戏结束。java程序的设计通常是先写伪码,再写测试码,最后实现真实码。

public class hello{
	public static void main(String[] args){
		int numofGuesses = 0;//记录玩家猜测次数
		GameHelper helper = new GameHelper();//取得玩家的输入

		SimpleDotCom theDotCom = new SimpleDotCom();//创建对象
		int randomNum = (int) (Math.random()*5);

		int [] lacation = (randomNum,randomNUm+1,random+2);
		theDotCom.setLocationCells(locations);
		boolean isAlive = true;

		while(isAlive == true){
		String guess = helper.getUserInput("enter a number");
		String result = theDotCom.checkYourself(guess);
		numofGuesses++;
		if(result.equals("kill")){
		isAlive = false;
		System.out.println("You took "+numofGuesses+"guesses");
		}
	}
}

for循环和while循环:

public class hello{
	public static void main(String[] args){
		for(int i =0;i < 100;i++){
			System.out.println("i = "+i);
		}
	}
}
public class hello{
	public static void main(String[] args){
		int i=0;
		while(i<=10){
			System.out.println("i = "+i);
			i++;
		}
	}
}

加强版for循环:
for(String name:nameArray){};
对nameArray中的每个元素执行一次。

使用Java函数库

Java函数库中有一个类可以实现数组,ArrayList

add(Object elem)  //向list中加入对象参数
remove(int index)  //在索引参数中移除对象
remove(Object elem)  //移除该对象
contains(Object elem)  //如果和对象参数匹配返回“ture”
isEmpty()  //如果list中没有元素返回“ture”
indexOf(Object elem)  ///返回对象参数的索引或-1
size()  //返回list中元素的一个数
get(int index)  //返回当前索引参数的对象

ArrayList与一般数组相比,它创建时不用确定大小,存放对象时不用指定索引值。

布尔表达式
“与”和“非”运算符(&&,||)
不等于运算符“!=”,“!”
长运算符(&,|)通常用来做位运算

可以用两种方式来指明使用某函数:
import java.util.ArrayList;
public class MyClass{…}

java.util.ArrayList<Dog>List = new kava.util.ArrayList<Dog>();  //声明
public void gp(java.util.ArrayList<Dog> list){ }  //用在参数时
public java.util.ArrayList<Dog> fpp(){...}  //作为返回类型的时候
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值