Java基础学习-第3天
1.封装
面向对象的三大特征为封装、继承和多态。类是对像对现实世界的模拟,客观世界的成员变量都是隐藏在对象内部的,外界是无法直接操作的。
封装的原则是成员变量要用private
修饰,提供对应的get
,set
方法。
封装的好处
通过方法来控制成员变量的操作,提高了代码的安全性。
把代码用方法进行封装,提高了代码的复用性。
2.构造方法
构造方法和类同名,分为有参构造方法和无参构造方法。
public class Student {
private String name;
private int age;
public Student() {
this.name = "a";
this.age = 1;
}
public Student(String n,int a){
this.name = n;
this.age = a;
}
}
系统会提供一个默认的构造方法。
3.String 类
String A = "hello world";
String 类表示字符串,Java程序中的所有字符串文字都是此类的实现。
字符串的特点:
1.字符串不可变,他们的值在创建后不能被更改。
2.虽然String的值是不可变的,但是他们可以被共享。
关于“共享”举例。
public static void main(String[] args) {
String s = "abc";
String s1 = "abc";
System.out.println(System.identityHashCode(s));
System.out.println(System.identityHashCode(s1));
}
运行结果是一样的,也就是说s和s1现在指向的是一个东西。
3.字符串效果上相当于字符数组,但是底层原理是字节数组。
String 有很多种构造方法:
public String();
public String (char[] chars);
public String (byte[] bys);
String s = "内容";
构造方法有区别的。
例如:
char [] a = {'a','b','c'};
String s1 = new String(char[] a);
String s2 = new String(char{] a);
这种情况下s1和s2是两个不同地址的对象。
String s3 = "abc";
String s4 = "abc";
这种情况下s3,s4指向的是同一个对象。
字符串的遍历
public class Main {
public static void main(String[] args) {
String a = "abc";
for(int i = 0; i<a.length();i++){
System.out.println(a.charAt(i));
}
}
}
4.关于==
和equal()
的区别
==可以用于比较基本数据类型。
==用于比较引用类型的时候,比较的是两个对象的地址是否相同。
equal不可以用于比较基本数据类型。
equal用于比较引用类型的时候,比较的是两个对象的值是否相同。
二者的返回值都是布尔表达式。