面向对象
面向对象概念
package com.cloud.day2; /* java面向对象的语言
对象:真实存在唯一的事物。 类:实际就是对某种类型事物的共性属性与行为的抽取。 抽象的概念.... 车
我们从小的时候就不断的接触很多的对象,我们的大脑就会把 这些具备相同属性与行为的事物进行分类。
在现实生活中就存在对象与类这两种事物。计算机是服务于人类,为了让计算机更加接近我们的 生活,这时候就出现了面向对象的计算机语言。 面向过程(C) 面向对象(java)
现实生活中 : 对象---------类 在java中:类------------>对象
面向对象的计算机语言核心思想:找适合的对象做适合的事情。 如何找适合的对象: 1. sun已经定义好了很多的类,我们只需要认识这些类,我们就可以通过这些类创建对象使用。 2. 自定义类,通过自定义类来创建对象使用。 自定义类创建对象的三步骤: 1. 自定义类。 格式: class 类名{ 事物的公共属性使用成员变量描述。 事物的公共行为使用函数描述。 } 2. 通过自定义类创建对象。 格式: 类名变量名 = new 类名(); 3. 访问(设置)对象的属性或者调用对象的功能。 1.访问对象属性的格式: 对象.属性名. 2.设置对象的属性: 对象.属性名 = 数据。 3. 调用对象的功能 对象.函数名(); */ class Car{ String name; String color; int wheel; public void run(){ System.out.println(name+":跑的快..."); } } public class Demo1 { public static void main(String[] args) { Car c1 = new Car(); c1.name="大众"; Car c2 = new Car(); c2.name="宝马"; c1 = c2; System.out.println(c1.name); } } |
案例二
package com.cloud.day2; class Car1{ String name; String color; int wheel; public void run(){ if(wheel>=4){ System.out.println(name+":跑的快..."); }else{ System.out.println(name+":跑的慢...需要修理..."); } } } class CarFactory{ String name; String address; String tel; public void repair(Car1 c){ if(c.wheel>=4){ System.out.println("没有问题处理..."); } else{ c.wheel=4; System.out.println("问题解决..."); } } } public class Demo2 { public static void main(String[] args) { Car1 c = new Car1(); c.name = "BWM"; c.color = "白色"; c.wheel = 3; for(int i=0 ; i<10 ; i++){ c.run(); } CarFactory cf = new CarFactory(); cf.repair(c); } } |
成员变量和局部变量
package com.cloud.day2; /* 成员变量与局部变量的区别: 定义的位置上区别: 1. 成员变量是定义在方法之外,类之内的。 2. 局部变量是定义在方法之内。 作用上的区别: 1. 成员变量的作用是用于描述一类事物的公共属性的。 2. 局部变量的作用就是提供一个变量给方法内部使用而已。 生命周期区别: 1. 随着对象的创建而存在,随着对象的消失而消失。 2. 局部变量在调用了对应的方法时执行到了创建该变量的语句时存在,局部变量一旦出了自己的作用域 那么马上从内存中消失。 初始值的区别: 1. 成员变量是有默认的初始值。 数据类型 默认的初始值 int 0 float 0.0f double 0.0 boolean false char ' ' String(引用数据类型) null 2. 局部变量是没有默认的初始值的,必须要先初始化才能使用。 */ class Person { String name; public void age(){ int age; age = 12; for(int i=0 ; i<5 ; i++){ System.out.println("HELLO:"+age); } } } public class Demo3 { public static void main(String[] args) { Person p1 = new Person(); p1.age(); } } |
匿名对象
package com.cloud.day2; /* 匿名对象:没有引用类型变量指向的对象称作为匿名对象。 需求:使用 java类描述一个学生类。 匿名对象要注意的事项: 1. 我们一般不会给匿名对象赋予属性值,因为永远无法获取到。 2. 两个匿名对象永远都不可能是同一个对象。
匿名对象好处:简化书写。 匿名对象的应用场景: 1. 如果一个对象需要调用一个方法一次的时候,而调用完这个方法之后,该对象就不再使用了,这时候可以使用 匿名对象。 2. 可以作为实参调用一个函数。 */ class Student { int num; String name; public void study(){ System.out.println("Study"); } } public class Demo4 { public static void main(String[] args) { Student s = new Student(); s.study(); new Student().study(); } } |