说道类与对象,要讲讲,类与对象之间的联系和区别。
类不是对象(却是用来创造他们的模型),类是对象的蓝图,它会告诉虚拟机如何创建某种类型的对象,根据某类创建出的对象都会有自己的实例变量
类与对象的要点:
1.面向对象设计扩展功能不需要改动之前已经测试好的代码程序
2.所有的Java程序都定义在类中
3.类如同蓝图描述该类型的对象要如何创建
4.对象自治,无需在意如何完成任务
5.对象有已知的事务,并能执行工作
6.对象本身已知道的事物称为实例变量,它代表对象的状态
7.创建类时,可能同时会需要创建独立,测试用的类
8.类可以继承自较为抽象的父类
9.Java的程序在执行期是一组会互相交谈的对象
超强布尔表达式:
“与”和“或”运算符(&&,||) 例子:
if(price>30&&price<40){
camera=x;
}
if(brand.equals("A"||brand.equlas("B"){
//执行A或B才能进行的工作
}
不等于运算符(!=和!):
if(model!=2000){
//非2000的工作
}
if(!bread.equals("x")){
//非x的工作
}
短运算符(&&,||){
这些运算符称为短运算符。
在&&表达式中,左右两边都为true这个表达式才会为true,所以我们可以用下面这种方式来避免调用内容为null指针变量的方法:
长运算符:(&,|)
使用在boolean表达式时会强制Java虚拟机一定要计算运算符两边的算式。
使用函数库(Java API):
必须指明程序代码中所使用到的类的完整名称,当调用ArrayList时:
java.util.ArrayList
本章节要点:
ArrayList是个Java API的类。
使用add()来新增ArrayList的元素
使用remove来删除ArrayList中的元素
要寻找某项元素的位置,使用idexOf()
使用isEmpty()来判别ArrayList是否为空
要取得ArrayList的大小,可以使用size()的方法
传统的数组可以用length的这个变量取得大小
ArrayList会自动调节大小
可以用参数类型来声明数组内容的类型,例如ArrayList<Button>会声明带有Button类型的ArrayList
虽然ArrayList只能携带对象而不是private主数据类型,但编译器能够自动地将private主数据类型包装成Object以放在ArrayList中
类会用包来组织
类有完整的名称,是由包的名称与类的名称所组成的。ArrayList事实上为java.util.ArrayList
除了java.lang之外,使用到其他包的类都需要指定全名
学习Java 变量的概念是非常重要的。 下面来说说primitive主数据类型:
boolean 与 char
boolean (java虚拟机决定)true或false
char 位数:16bit 值域:0~65535
数值:
interger
byte 位数:8bit 值域:-128~127
short 位数:16bit 值域:-32768~32767
int 位数:32bit 值域:-2147483648~2147483647
long 位数: 64bit 值域:-最大~+最大
浮点数:
float 位数:3bit 值域:范围规模可变
double 位数:64bit 值域:范围规模可变
声明一个变量,需要名称和类型,来说说变量的规则:
避开关键字(keyword):
1.名称必须以字母,下划线(_)或$符号开头,不能用数字开头
2.除了第一个字符之外,后面就可以用数字,不用再第一个字符上即可
3.只要符合以上两条规则 ,你就可以随意笛命名,但还得要避开Java的保留字。
保留字一览:boolean、byte、char、double、float、int、long、short、public、private、protected、abstract、final、native、static、strictfp、synchronized、transient、
volatitle、if、else、do、while、swith、case、default、for、break、continue、assert、class、extends、implements、import、instanceof、interface、new、package、super、this、
catch、finally、try、throw、throws、return、void、const、goto、enum.
通过悬系变量的知识 下面出一道题目吧:
class HeapQuize{
int id=0;
public static void mian(String [] args) {
int x=0;
HeapQuize[]hq =new HeapQuize[5];
while(x<3){
hq[x]=new HeapQuize();
hq[x].id=x;
x=x+1;
}
hq[3]=hq[1];
hq[4]=hq[1];
hq[3]=null;
hq[4]=hq[0];
hq[0]=hq[3];
hq[3]=hq[2];
hq[2]=hq[0];
}
}
引用变量:hq[0]、hq[1]、hq[2]、hq[3]、hq[4]所引用到的对象id的值为多少????
下面来说说对象的行为:
1.类是对象的蓝图。在编写类时,是在描述Java虚拟机应该如何制作该类型的对象。
2.任一类的每个实例都带有相同的方法,但是方法可以根据实例变量的值来表现不同的行为。
3.方法会运用形参,调用的一方会传入实参。
4.方法可以有返回值,每个方法都声明返回的类型,若方法设成void类型,代表这没有任何返回东西。
5.方法可以多个参数,在声明的时候要用逗号分开,传入的时候也需要用逗号分开。
数据隐藏:
将程序的实现从不良数据改成可以保护书库且让你还能修改数据的方式很简单:
将实例变量标记为私有的,并提供公有的getter与setter来控制存取动作。
将实例变量标记为private
将getters与setters标记为public。
在声明与初始化变量实例的时候:
需要清楚的一个原则是: 实例变量永远都会有默认值,如果你没有明确的赋值给实例变量,或者没有调用setter,实例变量还是会有值。
integers : 0 float points:0.0 booleans :fasle references: null.
变量的比较:
使用==来比较两个primitive主数据类型,或者判断两个引用是否引用同一个对象
使用equals()来判断两个对象是否在意义上相等。
java中的ArrayList操作:
1.创建: ArrayList<Egg>myList=new ArrayList<Egg>(); 新的ArrayList对象会创建在堆上。
2.加入元素: Egg s=new Egg(); myList.add(s); 此ArrayList会产生出一个“盒子” 来放Egg对象。
3.再加入元素:Egg b=new Egg(); myList.ad(b); 此ArrayList会再弄出一个“盒子”来放新的Egg对象。
4.查询大小: int theSize=myList.size(): 因为myList有两个元素,size会返回2
5.查询特定元素: boolean isIn=myList.contains(s);:因为myList带有s所应用的Egg对象,所以此方法会返回true
6.查询特定元素的位置 : int index=myList.indexOf(b); :ArrayList为零基的,所以b引用的对象是第二个对象,而indexOf()会返回的;
7.判断集合是否为空:boolean empty=myList.isEmpty(); :因为不是空的,isEmpty()会返回false;
8.删除元素:myList.remove(s);:被缩小了
比较ArrayList与一般数组:
1.一般数组在创建时就必须确定大小:
对于ArrayList来说,只需要创建出此类型的对象就可以,不需要指定大小,因为它会在加入或删除元素时自动地调整大小
new String[2] :指定了大小 new ArrayList<String>() 不需要指定大小
2.存放对象给一般数组的时候,必须要指定位置:
必须要指定介于0到比length小1之间的数字:
myList[1]=b;
使用ArrayList时,你可以使用add(Int,Object)形式的方法来指定索引值,或者使用add(Object)的形式来给它自定管理大小: myList.add(b);
3.一般数组使用特殊的语法:
但ArrayList是一个对象,所以不会有特殊的语法
4.ArrayList是参数化的:
ArrayList<String> :<String>是类型参数,代表String的集合,就像ArrayList<Cat>代表着Cat的集合。