1.面向对象的三大特征
(1)封装:是指将对象的实现细节隐藏起来,然后通过公共方法来向外暴露该对象的功能
(2)继承:面向对象的复用重要手段,当子类继承父类后,子类是一种特殊的父类,能直接或间接获取父类成员。
(3)多态:是指把子类对象赋值给父类变量,但运行依旧表现出子类的行为特征,这就意味同一类型的对象在运行时表现出不同的行为特征。
(4)抽象:从特定角度出发,抽取所关注特性,行为,从而形成一个抽象的事物,从复杂到简洁的思维模式
2.类的定义
package HelloWorld;
public class user {
private String userName; //姓名
private Integer age; //年龄
private String addes; //住址
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getAddes() {
return addes;
}
public void setAddes(String addes) {
this.addes = addes;
}
@Override
public String toString() {
return "user [userName=" + userName + ", age=" + age + ", addes=" + addes + "]";
}
}
3.类的调用
(1)类的创建
类名 变量=new 类名()
(2)类的调用
package HelloWorld;
class user {
private String userName; //姓名
private Integer age; //年龄
private String addes; //住址
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getAddes() {
return addes;
}
public void setAddes(String addes) {
this.addes = addes;
}
@Override
public String toString() {
return "user [userName=" + userName + ", age=" + age + ", addes=" + addes + "]";
}
}
public class userDemo {
public static void main(String[] args) {
user user=new user();
user.setUserName("张三"); //调用user类的setusername方法
user.setAddes("河南");
user.setAge(52);
System.out.println( user.toString());
}
}
4.实例化类的内存分析
方法区:存储方法 userDome.class 存储字节码
栈:存储 user类名(变量user) user user new user()
堆 :存储user的对象 (username:张三,age:52,addes:河南)
5.对象的生命周期
对象出生:new
对象结束:当堆中对象没有被任何对象引用,此时就成为垃圾,最后被垃圾回收GC回收,
回收的作用:释放空间
6.对象的比较
== 号:对于基本数据类型来说比的值
:对于对象来说是比较的引用地址equals()
7.匿名对象:没有名称的对象,创建之后没有赋值给某个变量
new user();由于没有名称:只能使用一次,把对象当实参使用。