初识: 面向对象和面向过程
面向对象思想:物以类聚,分类的思维方式,将问题分成所需要的几个类别,然后对类进行单独思考。列:我去公园 首先我是一个类,去的方式是一个类,公园也是一个类。
面向对象适合处理复杂的问题,适合处理需要多人协作的问题
面向过程的思想:是分成一个一个的步骤
面向过程适合处理一些较为简单的问题
面向对象编程 (Object-Oriented Programming,OOP)
面向对象编程的本质:以类的方法将代码组织,以对象的组织(封装)数据
抽象的来说就是
- 封装:把数据包装起来
- 继承:类与类之间存在子类和父类
- 多态:同一个事物表现出不同形态
方法
- 方法是语句的集合,他们在一起执行一个功能
- 方法包含在类或者对象中
- 方法在程序中被创建,在其他地方被引用
设计方法的时候最好保持方法的原子性,即一个方法只能完成一个功能,这样有利于后期的扩充
/*定义一个方法
* 修饰符 返回值类型 方法名(参数类型 参数名){
* ........
* 方法体
* ........
* return 返回值
* }
*/
public static int add(int i,int j) {
return i*j;
}
修饰符:是用来定义这个方法的访问方式的,是公开还是私密
返回类型:是用来表示方法可能的返回值,是方法返回的数据类型,也存在没有返回值的情况,这时候返回类型就是void。
方法名:定义这个方法的名称
参数类型:类似一个占位符,当方法被调用时,传递值给参数。参数分为形参和实参
形式参数:方法在运行时,外界输入的参数
实参:调用方法时实际传输给方法的数据
方法体:实现方法的具体语句,定义了该功能
调用方法(实参)
Java的调用主要是看方法有没有返回值分为两种调用方式
1.若是有返回值,方法就被当做一个值返回
int lauge = min(19.20)
2.若是返回值为void ,则方法被当做一条语句输出
System.out.println('The min is' + lauge)
java方法调用是值传递
值传递:就是说这个里面保存的具体的数值,比如 1,2,3,
引用传递:就是说这个里面保存的是这个值的地址,访问地址才能获取值
以下为值传递实例
public class digui {
public static void main(String[] args) {
int num = 10;
String str = "hello";
StringBuilder sb = new StringBuilder("iphone");
int [] arr = new int [] {0,0,0,0,0,0,0};
//调用int 整型
valuePassDemo1(num);
System.out.println("main num is:" + num);
//调用string 字符串
valuePassDemo2(str);
System.out.println("main string is:" + str);
//调用StringBuilder1
valuePassDemo3(sb);
System.out.println("main sb is:" + sb);
//调用StringBuilder2
valuePassDemo4(sb);
System.out.println("main sb is:" + sb);
//调用int array 数组
valuePassDemo5(arr);
System.out.println("main arr is:" + Arrays.toString(arr));
}
//实例1
public static void valuePassDemo1(int num) {
num = 100;
System.out.println("valuePassDemo1 num is " + num);
}
//实例2
public static void valuePassDemo2(String str) {
str = "你好呀!";
System.out.println("valuePassDemo2 string is " + str);
}
//实例3
public static void valuePassDemo3(StringBuilder builder) {
builder.append("13");
System.out.println("valuePassDemo3 builder is " + builder);
}
//实例4
public static void valuePassDemo4(StringBuilder builder) {
builder = new StringBuilder ();
builder.append("999999");
System.out.println("valuePassDemo4 builder is " + builder);
}
//实例5
public static void valuePassDemo5(int [] a) {
for(int i = 0;i<a.length;i++) {
a[i]=i;
}
System.out.println("valuePassDemo4 builder is " +Arrays.toString(a));
}
}