类与对象
1. 对于面向对象的开发来讲也分为三个过程:
OOA(面向对象分析)
OOD(面向对象设计)
OOP(面向对象编程)
2. 面向对象的基本特征
2.1. 封装:保护内部操作(属性,方法)不被破坏。
-
- 方法就是一种封装
- 关键字private(私有化)也是一种封装
♧使用了该关键字,本类当中仍然可以随意访问,但超出本类就不能直接访问了。
♧间接访问private修饰的成员变量,可以设置一组getter/setter 方法。
♧对于getter来说,不能有参数,返回值类型与返回值一致。
♧对于setter来说,不能有返回值,参数类型与返回值类型一致。
♧This用来区分成员变量和局部变量
2.2. 继承:在原本的基础上继续进行扩充。
2.3. 多态:在一个指定范围之内进行概念转换
3. 类与对象的基本概念
类:是一组相关属性和方法的集合,可以看成一类事物的模板。也就是说,类就是将具有共同特点的事物,抽象成为一个类。(例如:人,猫)
-
- 属性(成员变量):该事物的状态信息。(例如:学生有名字,年龄,联系方式等)
- 方法(成员方法):事物能够做什么,属于动作。(例如:学生能吃饭,睡觉,学习)
示例代码:
1 class Student{ 2 String name; 3 int age; 4 5 public void eat(){ 6 System.out.println("eat food"); 7 } 8 ]
对象:一类事物的具体表现。(例如:学生,波斯猫)
示例代码:
Student s = new Student(); //其中s为具体的对象 System.out.println(s.name); //调用该该对象的属性 s.eat(); //调用该该对象的方法
类与对象之间的关系:
类是抽象的,是事物的描述
对象是具体的,是事物的实例
类是对象的模板,对象是类的实体
4.对象调用在内存中的示意图
5.对象作为参数传递(传递的是地址)
当一个对象作为参数传递时,实际上传进去的是对象的地址值。
6.局部变量与成员变量的区别
定义位置:
成员变量:在方法内部的变量
局部变量:在方法外部定义的变量
内存位置:
局部变量:存在于栈内存中
成员变量:存在于堆内存中
默认值区别:
局部变量:没有默认值
成员变量:有默认值
作用域不同:
局部变量:只在小范围内使用
成员变量:在当前类中都能使用
生命周期不同:
局部变量在方法被调用的时候产生,在方法调用结束时死亡
成员变量在对象创建的时候产生,对象被回收的时候死亡。
7.构造方法
作用:用来创建对象,并且快速赋值
格式:
1 class Student{ 2 String name; 3 int age; 4 5 public Student(){ //无参的构造方法 6 7 } 8 public Student(String name,int age){ //全参构造方法 9 this.name = name; 10 this.age = age; 11 } 12 13 }
特点(注意事项):
♧构造方法的名称与所在的类名称完全一样
♧构造方法不写返回值类型,连void也不写
♧构造方法不能return一个具体的返回值
♧如果没有编写任何构造方法,那么编译器将会默认一个无参的构造方法
♧一旦编写了一个构造方法,那么默认的构造方法将会被覆盖
♧构造方法也是可以进行重载的
8.构建一个完整的类
通常有四部分组成:
♧用private修饰的成员变量
♧为每一个成员变量生成getter setter方法
♧编写一个无参的构造方法
♧编写一个全参的构造方法
代码示例:
class Student1 { private String name; private int age; public Student1(){ } public Student1(String name ,int age){ this.name = name; this.age = age; } public String getName(){ return name; } public void setName(String name){ this.name = name; } public int getAge(){ return age; } public void SetAge(int age){ this.age = age; } public void eat(){ System.out.println("eat food"); } public void sleep(){ System.out.println("sleep"); } public void study(){ System.out.println("study!"); } }
注:定义一个类时,不能直接写输出语句。
1. 对于面向对象的开发来讲也分为三个过程:
OOA(面向对象分析)
OOD(面向对象设计)
OOP(面向对象编程)
2. 面向对象的基本特征
2.1. 封装:保护内部操作(属性,方法)不被破坏。
-
- 方法就是一种封装
- 关键字private(私有化)也是一种封装
♧使用了该关键字,本类当中仍然可以随意访问,但超出本类就不能直接访问了。
♧间接访问private修饰的成员变量,可以设置一组getter/setter 方法。
♧对于getter来说,不能有参数,返回值类型与返回值一致。
♧对于setter来说,不能有返回值,参数类型与返回值类型一致。
♧This用来区分成员变量和局部变量
2.2. 继承:在原本的基础上继续进行扩充。
2.3. 多态:在一个指定范围之内进行概念转换
3. 类与对象的基本概念
类:是一组相关属性和方法的集合,可以看成一类事物的模板。也就是说,类就是将具有共同特点的事物,抽象成为一个类。(例如:人,猫)
-
- 属性(成员变量):该事物的状态信息。(例如:学生有名字,年龄,联系方式等)
- 方法(成员方法):事物能够做什么,属于动作。(例如:学生能吃饭,睡觉,学习)
示例代码:
1 class Student{ 2 String name; 3 int age; 4 5 public void eat(){ 6 System.out.println("eat food"); 7 } 8 ]
对象:一类事物的具体表现。(例如:学生,波斯猫)
示例代码:
Student s = new Student(); //其中s为具体的对象 System.out.println(s.name); //调用该该对象的属性 s.eat(); //调用该该对象的方法
类与对象之间的关系:
类是抽象的,是事物的描述
对象是具体的,是事物的实例
类是对象的模板,对象是类的实体
4.对象调用在内存中的示意图
5.对象作为参数传递(传递的是地址)
当一个对象作为参数传递时,实际上传进去的是对象的地址值。
6.局部变量与成员变量的区别
定义位置:
成员变量:在方法内部的变量
局部变量:在方法外部定义的变量
内存位置:
局部变量:存在于栈内存中
成员变量:存在于堆内存中
默认值区别:
局部变量:没有默认值
成员变量:有默认值
作用域不同:
局部变量:只在小范围内使用
成员变量:在当前类中都能使用
生命周期不同:
局部变量在方法被调用的时候产生,在方法调用结束时死亡
成员变量在对象创建的时候产生,对象被回收的时候死亡。
7.构造方法
作用:用来创建对象,并且快速赋值
格式:
1 class Student{ 2 String name; 3 int age; 4 5 public Student(){ //无参的构造方法 6 7 } 8 public Student(String name,int age){ //全参构造方法 9 this.name = name; 10 this.age = age; 11 } 12 13 }
特点(注意事项):
♧构造方法的名称与所在的类名称完全一样
♧构造方法不写返回值类型,连void也不写
♧构造方法不能return一个具体的返回值
♧如果没有编写任何构造方法,那么编译器将会默认一个无参的构造方法
♧一旦编写了一个构造方法,那么默认的构造方法将会被覆盖
♧构造方法也是可以进行重载的
8.构建一个完整的类
通常有四部分组成:
♧用private修饰的成员变量
♧为每一个成员变量生成getter setter方法
♧编写一个无参的构造方法
♧编写一个全参的构造方法
代码示例:
class Student1 { private String name; private int age; public Student1(){ } public Student1(String name ,int age){ this.name = name; this.age = age; } public String getName(){ return name; } public void setName(String name){ this.name = name; } public int getAge(){ return age; } public void SetAge(int age){ this.age = age; } public void eat(){ System.out.println("eat food"); } public void sleep(){ System.out.println("sleep"); } public void study(){ System.out.println("study!"); } }
注:定义一个类时,不能直接写输出语句。