目录
1.1面向对象的概述
1.1.1面向对象程序设计
1.1.2面向对象设计过程
1.1.3面向对象的特点
1.2类和对象
1.2.1类和对象的定义
1.2.2类和对象的举例
1.3类的定义
1.3.1类的定义格式
1.3.2创建对象
1.3.3成员变量的默认值
1.3.4构造方法
1.3.5方法的重载
1.4值传递和引用传递
1.1面向对象的概述
1.1.1面向对象程序设计
1.1.2面向对象设计过程
1.1.3面向对象的特点
1.2类和对象
1.2.1类和对象的定义
1.2.2类和对象的举例
1.3类的定义
1.3.1类的定义格式
1.3.2创建对象
1.3.3成员变量的默认值
1.3.4构造方法
1.3.5方法的重载
1.4值传递和引用传递
1.1面向对象的概述
1.1.1面向对象的程序设计
面向对象的程序设计思想 (Object Oriented Programming) 简称:OPP
面向对象就是把现实中的各种属性都抽象成程序设计中的“对象”,一切皆为对象,是一种“自下而上”的设计思想,首先设计各个组件,然后对其进行组装。与之相对应的还有面向过程的程序设计(procedure-Oriented Programming) 简称:POP,面向过程是一种“自上而下”的设计思想,首先定义好一个框架或者思考解决问题的步骤,然后将每一个步骤逐步实现。通俗理解就是先写一个main()函数,然后使用多个子函数来实现其最终的功能。面向过程最大的劣势就是无法解决复杂的系统,相对于面向对象的语言难以维护,也不能复用,想要扩展更多的功能也很困难。与之对应,面向对象容易维护,容易复用,扩展性强。面向对象都以类为组织单位,将抽象出来的对象都用类来表示。
1.1.2面向对象设计过程
1.1.3面向对象的特点
面向对象三大特征:封装,继承,多态。
1.2类和对象
1.2.1类和对象的定义
类:类是一组相关属性和行为的集合。可以看成是一类事物的模板,使用事物的属性特征和行为特征描述该类事物。
举个例子:
1.2.2类和对象的举例
小猫和小狗都是动物,我们就可以创建一个类把小猫和小狗共同的属性和功能抽象出来。
public class 动物{
动物的属性;(变量)名字 年龄 毛色
动物的功能;(方法)走 跑 叫
}
小猫可以继承动物的属性和功能然后再加上自己特有的属性和功能。
小猫 继承 动物{
小猫特有的属性:
小猫特有的功能; 爬树 抓老鼠
}
1.3.1类的定义格式
public class 类名{ //成员变量 //成员方法 }
讯享网
成员变量:
成员方法:
不能加static
讯享网public class Car { String name; //成员变量,未手动初始化则被赋予默认值null String color; float price; /* 成员方法 */ public void run(int speed){ System.out.println(name+"汽车以"+speed+"的速度启动"); } public void stop(){ System.out.println("汽车暂停"); } }
1.3.2创建对象
创建对象:
类名 对象名 =new 类名();
使用对象访问类中的成员
讯享网对象名.成员变量; 对象名.成员方法();
举个例子:
public class Textcar { public static void main(String[] args){ int a=3; System.out.println(a); //局部变量,需手动进行初始化。在方法或者代码块上声明。 Car car=new Car(); car.name="比亚迪"; car.color="磨砂黑"; car.price=.0f; car.run(120); //speed也属于局部变量 car.stop(); Car carbd=new Car(); System.out.println(carbd.name); //测试name默认初始化的值为null carbd.name="别克"; carbd.color="银色"; carbd.price=.0f; carbd.run(110); carbd.stop(); }
上述代码访问的类就是上边创建的那个类Car。
1.3.3成员变量的默认值
| 数据类型 | 默认值 | |
| 基本类型 | 整数(byte,short,int,long) | 0 |
| 浮点数(float,double) | 0.0 | |
| 字符(char) | "\u00000" | |
| 布尔(boolean) | false | |
| 引用数据类型 | 数组,对象,String | null |
1.3.4构造方法
构造方法名名字与类名相同,且没有返回值,且不需要使用void修饰。
举个例子:
讯享网package day01A; public class Car { String name; String color; float price; //构造方法 public Car(){ System.out.println("无参构造方法"); name=null; color=null; price=0.0f; } public Car(String n,String c,float p){ System.out.println("有参构造方法1"); name=n; color=c; price=p; } public Car(String c,float p,String n){ System.out.println("有参构造方法2"); color=c; name=n; price=p; } }
public class Textcar { public static void main(String[] args){ Car bccar=new Car("奔驰","磨砂黑",f); Car bmcar=new Car(); Car adcar=new Car("银色",f,"奥迪"); } }
1.3.5方法的重载
是指一个类中具有相同的名字,但参数不同的多个方法。
通过参数的个数,类型,顺序来进行区分。
我将通过一个判断最大数的代码向你展示:
讯享网public class MyMath { public void max(int x,int y){ int z= (x>y)?x:y; System.out.println(z); } public void max(double x,double y){ double z=(x>y)?x:y; System.out.println(z); } public void max(int x,int y,int z){ int a=(x>y)?x:y; int b=(a>z)?a:z; System.out.println(b); } public void max(double x,double y,double z){ double a=(x>y)?x:y; double b=(a>z)?a:z; System.out.println(b); } }
以上类中四个方法均以max来命名,但是它们参数的个数,类型均不相同,这就是参数重载。
参数不同(可以有三方面的不同)
数量不同,类型不同,顺序不同。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/121136.html