java 不熟悉知识点归纳2


增强for循环

public static void main(String[] args){

String[] arr =new String[]{"A","B","C"};
String a=null;
for(String str :arr){
System.out.println(str);
a=str;
}
System.out.println(a); // 打印出C,为arr最后的值
}

循环调用每一个arr[]数组中的值并赋予str // for 的增强循环 相当于foreach 进行集合的遍历
缺点是丢失了索引信息。
增强for循环里的新建变量每次循环完都会释放掉 即str每次循环完后会被释放


int[] arr2=new int[]{1,3,5,7,9};
//int index=0;
for(int i:arr2){
arr2[Arrays.binarySearch(arr2, i)]=i+1;
//index++;
}
System.out.println(Arrays.toString(arr2));
//数组中如果有重复的值则此方法无法使用,可在外部定义索引之后内部++
//Arrarys.binarySearch(数组,值)返回索引。


面向对象

OOP (Object Oriented Programming)
封装 继承 多态
代码可扩展性,可维护性(容错能力)

类(class)用来描述一个对象(Object):对一类事物的描述,是抽象的、概念上的定义
对象是实际存在的个体,计算机中创建了一个内存区域用来存储。
实例化:创建对象的过程。

例如建造房子:
类:建筑图纸
对象:根据图纸造出的房子
实例化:装修

属性-》属性值
方法



对于引用数据类型 变量名存储的是变量在堆中的地址

例子:
Student stu1 =new Studeng();
stu1.age=16;

Student stu2=stu1;
stu1.age=61;
则stu2.age也是61
因为引用数据类型 拿的是内存的地址,stu2=stu1时相当于把stu1的地址给了stu2,所以stu1.age变化时用stu2.age访问 也变化了。

而基本数据类型传递的是值 不会跟着变化
int a1=1,a2;
a2=a1;
a1=2;
则a2=1无变化



this是实例化后的对象本身!!!
stu.changeAge(28); //28是实参
在Student class中
public void changeAge(int age){ //age这里是形参
this.age=age;
}
注意this无法再static类中使用







class Student{
public int age;
}
public class Demo06 {
public static void main(String[] args) {

int _int = 11;
Demo06 d = new Demo06();

d.changeInt(11);
System.out.println("使用完之后,int值变为了" + _int); // 11
Student stu =new Student();
stu.age=24;
d.changeAge(stu);
System.out.println("使用完之后为:"+stu.age);//25
}

public void changeInt(int _int) { //方法结束时销毁形参 所以外面再调用时_int并未发生改变
System.out.println("你传进来的int数字是" + _int);// 11
_int *= 2;
System.out.println("现在的int是" + _int);// 22

}
public void changeAge(Student stu){ //方法结束时只是把地址销毁了 所以改变已经发生了
System.out.println("你传进来的学员年龄是"+stu.age);//24
stu.age++;
System.out.println("修改后年龄是"+stu.age);//25
}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值