面向对象1
面向过程和面向对象的设计思想java面向对象语言object oriented programming OOP面向过程和面向对象都是语言设计思想案例:把大象装进冰箱 图书馆管理系统 书类 管理员类 借阅……面向过程:关注于具体的流程,一步一步实现解决问题3步可以实现1.开门();2.装大象();3.关门();面向对象:先设计 对现实中客观事物进行分类,创建出类(在类中定义功能),创建出具体对象,让
面向过程和面向对象的设计思想
java面向对象语言
object oriented programming OOP
面向过程和面向对象都是语言设计思想
案例:把大象装进冰箱 图书馆管理系统 书类 管理员类 借阅……
面向过程:关注于具体的流程,一步一步实现解决问题
3步可以实现
1.开门();
2.装大象();
3.关门();
面向对象:先设计 对现实中客观事物进行分类,创建出类(在类中定义功能),创建出具体对象,让对象去做具体事情。
冰箱类{
开门()
关门()
装大象()
}
大象类{
}
难?
概念多,设计复杂
java类
类是对象现实事物的抽象。
实际生活中,先有对象(具体存在),后有类
人 人类(概念)
张三 对象(具体的一个人)
类的结构
成员变量:类中的属性 名词:品牌,颜色,价格,型号
方法:类中行为(功能) 动词:行驶,加速,停止.....
构造方法:用于创建对象
代码块
内部类
类是一个模型,对现实事物的抽象.是模板。
对象是从类这个模型创建出来的一个具体实例.
java类的定义
-
第一步:发现类
/* 1.发现类 汽车类 public修饰的类,类名必须与文件名一致 [访问权限修饰符][修饰符] class 类{ } */ public class Car {}
-
第二步:发现类的共有属性(成员变量)
/* 2.定义类的成员变量(属性) 名词 成员:类的成员,在类中定于 定义在类中,方法体之外 数据类型可以是java中的支持的任意类型(引用类型,基本类型) 成员变量可以初始化,也可以不初始化,不初始化时,java会默认值为其初始化 引用类型类型默认值是null 整数-0,浮点-0.0 boolean-false char-' '; 创建对象时,会从类中向对象中复制一份成员变量 在构造方法中,成员方法,代码块中可以使用成员变量 */ String name; float price; String color; int speed;
-
第三步:发现类的方法
/* 3.定义类的成员方法(行为/功能) 动词 局部变量: 定在方法,构造方法,代码块中 使用前必须赋值 数据类型可以是java中支持的任意类型 方法的参数也是局部变量 方法运行时局部变量创建,运行结束后局部变量销毁 */ public void run(int b){ int a = 0; System.out.println(a); System.out.println(b); System.out.println(name+"汽车行驶"); } /* 成员方法:定义在类,没有被static修饰的.通过对象调用 **/ public void stop(){ System.out.println(name+"汽车停止"); } }
java对象
/* 对象:具体存在的客观事物,可以拿来使用.万事万物(具体存在的客观事物)皆为对象 new Car(); new 在内存创建对象,Car()构造方法(默认有一个构造方法,方法名与类名相同) Car bm/bc 声明了一个Car类型的变量 =将创建的对象赋给了左边的变量 bm 表示一个具体存在的对象,可以使用 bm.name bc bc.name */ Car bm = new Car(); bm.name = "宝马"; bm.color = "黑色"; bm.price = 300000; bm.run(100); Car bc = new Car(); bc.name = "奔驰"; bc.price = 400000; bc.color = "白色"; bc.run(200);
总结:
-
类:是一类事物的抽象概念,是一个模型
-
对象:是由这个模型所创造出的一个具体化的存在,实实在在的实例
-
所以创建对象过程也叫实例化对象.
-
现实生活中先有对象后有类,而编程是先设计类后创建对象
变量分类
-
按照位置分为:
-
成员变量:可以使用java语言中的任意一种数据类型(包括基本类型和是引用类型)
1.在定义成员变量时可对其初始化,如果不对其初始化,java会使用默认的值对其
初始化
2.成员变量在创建对象时会从类中复制一份到对象中。
3.成员变量可以被类中的方法,构造方法和特定类的语句块访问。
4.成员变量作用于整个类
-
局部变量:在方法、构造方法或者语句块中定义的变量
1.局部变量可以使用Java语言中任何一种数据类型(包括基本类型和引用类型)。
2.局部变量在使用前必须初始化赋值。
3.变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁
-
方法分类
-
成员方法:定义在类中
语法格式:修饰符 返回值类型 方法名 ( 参数列表) {
方法体语句;
[return 返回值]
}
-
构造方法:用来初始化对象的方发
构造方法
构造方法名与类名相同,且没有返回值,且不需要void修饰
1.作用:在构造方法中为创建的对象初始化赋值,
2.在创建一个对象的时候,至少要调用一个构造方法。
3.每个类都有构造方法。如果没有显式地为类定义构造方法,Java将会为该类提供一个默认
构造方法,但是只要在一个Java类中定义了一个构造方法后,默认的无参构造方法即失效。
4.一个类可以有多个构造方法
public class Person { //成员表变量 public String name; int age; //构造方法 public Person(){} public Person(String name,int age) { this.name = name; this.age = age; } //成员方法 哪个对象调用showInfo方法,那么name,age就是哪个对象中的属性 //this表示当前正在操作的对象 在成员方法,构造方法中使用成员变量,使用this调用. public void showInfo(){ System.out.println("姓名:"+this.name+" 年龄:"+this.age); } }
public class TestPerson { /* 变量分类: 按照数据类型分: 基本类型:8个 byte int long float double char boolean 引用类型:数组,String,自定义的类 new Person("张三",22); 在堆空间创建并存在对象 Person zs 在栈空间中声明的一个变量 = 把对象在内存中的地址 赋给 左边的变量,左边的变量只是持有对象的引用地址 */ public static void main(String[] args) { Person zs = new Person("张三",22); zs.showInfo(); Person ls = new Person("李四",20); ls.showInfo(); //new Person("张三",22).showInfo(); Person ww =ls; } }
方法重载
/* 方法重载:在同一个类中,有多个方法名相同,但参数不同的方法 参数: 个数 类型 顺序 方法重载与返回值无关 成员方法也可以重载 */ public void run ( int b){ System.out.println(name + "汽车行驶"); } public void stop () { System.out.println(name + "汽车停止"); } public void test(){} public void test(int a){} public void max(int a,int b){ System.out.println("int a,int b"); } public void max(float a,float b){ System.out.println("int a,int b");} public void test(int a,float b){ System.out.println("int a,float b"); }
更多推荐
所有评论(0)