JAVASE-方法,数组,类和对象

方法

一.方法的概念:

实现特定功能的一段代码,可以反复使用。

一个类中可以定义多个方法,方法之间属于并列关系,不可嵌套。

二.语法定义:

public static 返回值 方法名称(){

//方法体(功能代码)

}

三.方法的位置

类里面,主方法外面

四.方法的调用

方法名();

方法名(有参); 确定返回值类型

调用方法时,会优先执行方法内部代码,结束后,

返回到方法调用处,继续向下执行。

五.方法的参数

形参(局部变量的声明)与实参(局部变量的赋值)

语法:

public static void 方法名称(形式参数){

//方法体

}

作用:方法参数可以让代码功能跟灵活、普适性更高,易于修改及维护。

例子:单个参数和多个参数

六.返回值与返回值类型

概念:方法执行后的返回结果。(有返回值,无返回值)

语法:

public static 返回值类型 方法名称(形式参数列表){

//方法主体

return value;//返回值

}

有返回值:

在方法声明的时候,指定返回值的类型。并且需用return关键字来返回指定的类型。

无返回值:

方法声明的时候,使用void表示。

return的用法:

1.return value; 表示结束当前方法,并伴有返回值,返回到方法调用处。

2.return; 表示结束当前方法,直接返回。

注意!!return关键字后面不可以声明执行语句。

七.方法的好处

1.减少冗余

2.提高利用率

3.易读

4.易于维护

数组

一.数组的概念:

一组连续的存储空间,存储多个相同的数据类型

特点:类型相同、长度固定。

二.数组的创建

int[] a=new int [5]; //创建了长度为5的空间

三.数组的组成:

数组的四要素数据类型   数组名   下标    长度

数组的使用:1.声明数组 2.分配空间 3.赋值 4.使用

 

有效下标范围:0~数组长度-1

数组长度固定不变,超出了范围,会导致数组下标越界。

四.数组的创建语法:

1.声明并分配空间

2.声明并赋值(复)(简)

int a=new int[]{...};

int a={....};

五.数组的遍历:

从头至尾,逐个对数组进行访问。

数组名.length 获取数组的长度

六.数组的扩容

1.数组扩容:

创建大于原数组长度的新数组。

将原数组的元素依次复制到新数组中。

2. 复制方式:

System.arraycopy(原数组,原数组起始,新数组,新数组起始,长度)。

Arrays.copyOf(原数组,新长度). (返回带有原值的新数组)

3.地址替换:

引用数据类型,其变量中存储的是数组的地址。

在完成元素复制后,需要将新数组地址,赋值给原数组

 

七.数组的类型参数:

1.数组的类型参数

public static void print(int [] array){}

//引用数据类型,赋值也好、传参也好,操作的都是地址

2.数组类型的返回值

调用数组类型返回值的方法时,方法执行后,返回的是数组的地址。

八.可变长参数

1.概念:可接收多个同类型实参,个数不限,使用方式与数组相同。

2.语法:

数据类型... 形参名 //必须定义在形参列表的最后,且只能有一个。

public static int[] expand(int length , int... arr){}

九.数组的排序

1.冒泡排序

//外层条件-1,内层条件-i-1

for (int i = 0; i < num.length-1; i++) {

for (int j = 0; j <num.length-1-i; j++) {

if(num[j]>num[j+1]) {

int temp=num[j];

num[j]=num[j+1];

num[j+1]=temp;

}

}

}

2.选择排序

//外层条件-1,内层初始为i+1

for (int i = 0; i < num.length-1; i++) {

for (int j = i+1; j <num.length; j++) {

//使用固定值i和j进行比较

if(num[i]>num[j]) {

int temp=num[i];

num[i]=numj];

num[j]=temp;

}

}

}

3.JDK排序

Arrays.sort(数组名);//升序排序

Arrays.toString(数组名);//通过数组的方式输出

Arrays.copyOf(原数组名,新数组长度)

int []a={99,85,82,63, 60};

int []a1=Arrays.copyOf(a, a.length);

创建了a1这个数组,数组的长度和a1相同

a=a1; 把a1的地址赋值给a

面向对象

对象与类的关系:

类是对象的抽象(模板),对象是类的实例。

  • 类:定义了对象应具有的特征和行为,类是对象的模板。
  • 对象:拥有多个特征和行为的实体,对象是类的实例。

一.对象

1.对象的创建

例如:基于Dog类创建对象

Dog mydog(对象名) = new Dog();

2.访问属性

mydog(对象名).属性=属性值;

mydog(对象名).方法名();

二.类

1.实例变量 

属性:通过变量表示,又称实例变量。

实例变量的默认值:

                            整数:0
                            小数:0.0
                            字符:\u0000        (空格)                           

                            布尔: false
                            其他: null

位置:类的内部,方法的外部

命名:可允许与局部变量重名,局部变量优先

2.局部变量

位置:方法里面或方法内部结构中

命名:不允许与局部变量重名

三.方法重载

要求:

  • 方法名相同    
  • 参数列表不同(个数,顺序,类型)   
  • 与访问修饰符,返回值类型无关

四.构造方法(重点)

类中的特殊方法,主要用于创建对象。

特点:

1.名称与类名完全相同

2.没有返回值类型。

3.创建对象时,触发构造方法的调用不可同过"."手动调用。

构造方法重载:

创建对象时,传入参数,匹配对应的构造方法

默认构造方法:

1.在类中,如果没有定义构造方法,则默认编译器提供无参构造方法。

2.如果已经添加了有参构造方法,则无参构造方法不在提供,最好自己添加默认构造方法

五.this关键字的两种用法

1.第一种用法:

调用实例属性,实例方法。

2.第二种用法:

调用本类中其他的构造方法。如:this(),this(实参)。

this()调用无参构造器。

this(实参):调用有参构造器

注意!必须在构造方法的首行

猜你喜欢

转载自blog.csdn.net/qwq1518346864/article/details/114945414