java学习笔记(2)

1:for……each
这是一个遍历循环语句。意思是把一个数组/集合中的每个数据依次复制给一个变量,如下图所示:

for(int e:a)
    sum=sum+e

其中a为一个数组,上面这段代码的意识是,依次把a数组中的元素复制给a。即求a数组中的元素和。

2:数组
一维数组定义时格式: 数据类型 数组名[ ] 。
在定义数组时,不允许在 [ ]内指定数组元素的个数。
使用new为数组分配空间,new生成数组时,数组中的每个成员都会自动被初始化。
数组不能整体赋值。

char s[]=new char [3];
s[]={'a','b','c'}//这是错误的,不可以这样赋值。

二维数组定义类似。二维数组也有length属性,可以求每一维的数组长度。

int temp=new int[3][5];
int n=temp.length//n为3
int x=temp[0].length//n为5

3:面对对象设计的三个典型特征:封装,继承,多态。
(1)封装:将操作和操作所涉及的数据捆绑在一起,使其免受外界干扰和误用。
(2)继承:是指一个新的类继承原有类的基本特征,并可增加新的特性。原有的类称为父类或基类,新的类称为子类或派生类。在子类中,不仅包含父类的所有数据和方法,还可以增加新的属性和方法。继承具有传递性。
(3)多态:多态是指同一名称的行为可以有多种不同的功能,或者相同的接口有多种实现方法。

4:类的定义
类的成员变量类型可以为类(如string类等);
类中成员变量的作用域是整个类;
构造方法名必须与类名相同,且不能有返回值(void也不行);

5:很重要!!!
当运算符==和!=用于两个对象的比较时,它不是比较两个对象的‘值’是否相等,而是判断运算符两边是否是同一个对象(地址空间相同)。
如果要比较两个对象的“值”是否相等,可以使用equals()方法,比如p1.equals(p2)。
//其中p1,p2分别为两个对象实例。

6:有关构造方法
构造方法的调用方式和过程非常特别,它不是通过显示指定方法名直接调用的,而是通过在new实例化对象是系统自动调用的。实际上,在新建一个对象时,系统自动完成以下工作:
(1):分配空间;
(2):如果类定义时有初值,使用该值对成员变量进行初始化。如果没有初值,可以使用默认值;
(3):自动调用构造方法,如构造方法有多个,根据参数的类型和个数等决定调用的构造方法。

7:函数入口
main方法是一个程序的执行起点,其定义格式为:
public static void main(String args[])
其中main为方法名,args为形参,类型为字符串数组。类型一定为字符串数组,变量名可以变。
在这里插入图片描述
8:静态static
如果所有对象希望共享同一变量,可以在变量定义前加上一个关键字static,这样就定义了类变量,也称为静态变量。静态变量不在属于某个实例或对象,而是属于整个类。
对于静态变量和静态方法,可以通过“类名.”和“对象名.”来引用。

9:修饰符的权限
public:可以同时修饰类和成员变量,成员方法。表示可以被所有的其他类访问或引用。
protected:主要用于修饰类成员,表示允许该类的子类(不同包的子类也可以访问)以及与该类在同一包的其他类访问。
private:该类成员只能被类自身访问,任何其他类包括该类的子类都无权修改或引用
如果类成员前没有public,private,protected中的任何一个修饰符,则称它使用了默认修饰符(default),这时只有该类本身以及与该类在同一个包中的其他类才可以直接访问这些默认成员。

10、关键字final:关键字final可用于修饰类,成员变量,成员方法。用final修饰的元素不允许被重新赋值或修改。用final修饰的类不能再有子类,用final声明的方法不能再被重写。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值