java基础(5)----面向对象
-
编程思想:
简单的说一下,我们学习编程,最重要的就是要有编程思想,而编程思想无非就是面向过程和面向对象,以下谈谈我对编程思想的理解。
面向过程:
从过程入手,第一步,第二步…….借助过程与过程的配合,完成需求。
例如: 小明进入房间,需要以下几个步骤:
第一步打开房间门,第二步小明进去,第三步把房间门关上。
每一步都是一个过程,如果小王,小李等等进来呢,一直重复这几个过程,会显得程序冗余复杂。此时面向对象的出现完美解决了这种问题。
面向对象:----模拟现实世界编程。
从对象入手,把和需求相关的对象提取出来,借助对象和对象的配合,实现需求。
例如:小明进入房间:
先向小明下达开门的指令,然后向小明下达进入指令,最后向小明下达关门指令,小明就是对象,面向对象编程。
-
面向对象----Object Oriented
-
什么是对象:----万物皆对象。
现实生活中的对象都具有两个主要要素,一个是对象有什么,一个是对象干什么
对应程序中的属性和方法。
- 计算机中的对象:----是一块存储空间,是现实对象在计算机中的抽象表示。
- 类:----是具体对象的共性提取,对象是类的具体存在。
-
-
类的组成。
-
属性:
- 数据类型 变量名;//声明----string name;
- 数据类型 变量名 = 值;//声明并赋初值----string name="zhangsan"
-
方法:----修饰符 返回值类型 方法名(形参列表){//声明部分
//实现部分
}
-
构造方法:----特殊的方法。
- 方法名必须和类名完全一致;
- 没有返回值类型。
使用:
构造方法不允许手动调用,每次创建对象时由解释器自动调用
构造方法的作用是给属性赋值
如果类中没有定义构造方法,系统会默认分配一个公共无参的构造方法。
类的式例代码:
-
package com.lvsling.test;
public class Student { //属性 String name;//声明属性 int age=10;//声明属性并赋值 boolean sex; //无参构造方法 public Student() {
} //有参构造函数 public Student(String name, int age, boolean sex) { super(); this.name = name; this.age = age; this.sex = sex; } //普通方法 public void Test1(){ System.out.println("这是普通方法"); } } |
-
创建对象
- 语法:类名 变量名 =new 类名(构造参数);
-
使用:对象名.属性名 = 新值;//修改对象的属性值
对象名.属性名 //获取对象的属性值
对象名.方法名(实参列表);//调用对象的方法。
package com.lvsling.test;
public class TestOO { public static void main(String[] args) { //创建对象 Student s=new Student("zhangsan",18,true); //修改对象的属性值 s.age=25; //获取对象的属性值 System.out.println(s.age); //调用对象的方法 s.Test1(); } } |
-
创建对象的过程
- 分配空间--------给所有属性赋值默认值
- 初始化属性---------给属性赋初值
- 调用构造方法-------给属性进行第三次赋值
-
总结:
以上说明了面向对象中的类的书写,创建对象以及调用方法的过程。面向对象是java学习的核心思想,面向对象编程是模拟现实生活进行编程的思想,对象共性提取抽象化,面向对象高内聚,弱耦合大大提高了程序代码的可重用性和可扩展性。
提升与拓展:
类的属性是实例变量,也叫全局变量:
- 位置:类以内,方法以外(方法内的是局部变量)
- 默认值:有默认值,string---null,int----0,Boolean----false等
- 作用域:至少本类可以用
- 命名冲突:实例变量和局部变量可以重名,重合范围内局部变量优先。
方法重载----OverLord:在同一个类中,可以定义多个名称相同,参数不同的方法
要求:形参列表不同----顺序,类型,个数。对返回值无要求
好处:屏蔽因参数列表不同带来的差异,方法调用简单,灵活。