学习日志(day11)
面向对象
Java是面向对象的程序,OOP(Object Oriented Programming)
对象是什么
万事万物皆对象,看得见,摸得着的都是对象,一件事也是一个对象。
对象的构成
所有对象都有状态,状态是指对象本身固有的特性。例如,学生有姓名,年龄,体重,身高,肤色等
所有对象都有行为,行为是指对象具有的功能。例如,学生做作业,听课,玩儿游戏。
- 属性=状态
- 方法=行为
- 属性是类内方法外的变量
类是什么
如果对象都有相同的状态和相同的行为,就可以将这些对象归为同一类,例如,所有有姓名,有年龄,有学号的状态,有做作业行为,这些对象可统称为学生。
类是具有相同的状态和相同的行为的一组对象的集合。
类和对象的关系
类和对象的关系就如同模具和用模具制作出来的物品之间的关系。一个类给出他的全部对象的一个统一的定义,而它的每个对象则是符合这种定义的一个实体(也称作实例),因此类和对象就是抽象和具体的关系,类是多个对象进行综合抽象的结果,是实体对象的概念模型,而一个对象是一个类的实例
- 类是对象的抽象,类是对象的模板
- 对象是类的实例,对象是类的一个具体个体
定义类
- 定义Person类
public class Person{
}
- 定义类的属性
public class Person{
String name;
int age;
String gender;
}
- 定义类的方法
public class Person{
String name;
int age;
String gender;
public void dowork(){
}
public void learn(){
}
}
定义对象
通过new运算符创建对象
Person person=new Person();
对象分为两部分,分别为对象的引用和对象的实例
-
对象的引用:person在栈中分配内存
-
对象的实例:new Person()在堆中分配内存
对象的引用指向到对象的实例
public class Person { //类的属性
public String name;
public int age;
public String gender;
//类的方法
public void work(){
System.out.println(this.name+"的工作理念:工作让生活更美好");
}
public static void main(String[] args) {
//实例化对象
Person person = new Person();
//为属性赋值
person.name="洱海月";//使用对象
person.age=23;
person.gender="男";
person.work();
Person person1 = new Person();
person1.name="洱海月001";
person1.age=23;
person1.gender="男";
person1.work();
Person person2=person1;
}
}
类的构成
类的成员变量
类的属性是指类内,方法外声明的变量。
类的属性也叫成员变量
类的成员变量的内存分配在堆中,属性的内存单元是在实例化对象时分配的
public class Person{
String name;
int age;
String gender;
}
Person person=null;
person.name="erhaimoon";
person是空指针,无法将字符串erhaimoon保存到person指向的内存单元中
变量作用域
成员变量的作用域是类内
局部变量的作用域是方法内或循环内或者if语句内
类的成员方法
类中定义分方法就是类的方法,也叫成员方法
类包括main方法,构造方法,析构方法,普通方法
方法重载
- 方法重载是什么
在同一个类中,方法名称相同,方法参数不同(个数不同,或者类型不同,或者顺序不同)与返回值无关的多个方方法称为方法重载
//类的方法
public void work(double hour){
System.out.println(this.name+"的工作理念:工作让生活更美好");
}
//方法重载(方法名称相同,参数个数或者类型或者顺序不同,与返回值无关)
public void work(int hour){
System.out.println("方法重载!");
}
- 方法重载的调用
方法调用时,jvm会自动根据主调方法的参数来决定调用那个重载形势的方法
person1.work();
person1.work(5);
评论