A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© NamejavaEE 初级黑马   /  2018-10-7 21:22  /  575 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

定义方法的格式详解
修饰符 返回值类型 方法名(参数列表){
    //代码省略...
    return 结果;
}
修饰符: public static 固定写法
返回值类型: 表示方法运行的结果的数据类型,方法执行后将结果返回到调用者
参数列表:方法在运算过程中的未知数据,调用者调用方法时传递
return :将方法执行后的结果带给调用者,方法执行到 return ,整体方法运行结束
return 结果; 这里的"结果"在开发中,我们正确的叫法成为方法的返回值

定义方法
需求: 定义方法实现两个整数的求和计算。
明确返回值类型 :方法计算的是整数的求和,结果也必然是个整数,返回值类型定义为int类型。
明确参数列表 :计算哪两个整数的和,并不清楚,但可以确定是整数,参数列表可以定义两个int类型的
变量,由调用者调用方法时传递

定义方法注意事项
定义位置,类中方法外面。
返回值类型,必须要和 return 语句返回的类型相同,否则编译失败

调用方法的三种形式
直接调用: 直接写方法名调用
赋值调用: 调用方法,在方法前面定义变量,接收方法返回值
输出语句调用:在输出语句中调用方法, System.out.println( 方法名()) 。

方法重载
方法重载 :指在同一个类中,允许存在一个以上的同名方法,只要它们的参数列表不同即可,与修饰符和返
回值类型无关。
参数列表:个数不同,数据类型不同,顺序不同。
重载方法调用: JVM通过方法的参数列表,调用不同的方法。

数组概念
数组就是存储数据长度固定的容器,保证多个数据的数据类型要一致。
容器: 是将多个数据存储到一起,每个数据称为该容器的元素。
方式一
格式:
数组定义格式详解:
数组存储的数据类型: 创建的数组容器可以存储什么数据类型。
[] :  表示数组。
数组名字:为定义的数组起个变量名,满足标识符规范,可以使用名字操作数组。
new :关键字,创建数组使用的关键字。
数组存储的数据类型: 创建的数组容器可以存储什么数据类型。
[ 长度]:数组的长度,表示数组容器中可以存储多少个元素。
注意:数组有定长特性,长度一旦指定,不可更改。
和水杯道理相同,买了一个 2升的水杯,总容量就是2升,不能多也不能少。
举例:
定义可以存储3个整数的数组容器,代码如下:
方式二
格式:
举例:
定义存储1,2,3,4,5整数的数组容器。
方式三
格式:
 数组存储的数据类型[] 数组名字 = new 数组存储的数据类型[长度];
int[] arr = new int[3];
数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3...};

数组的访问
索引: 每一个存储到数组的元素,都会自动的拥有一个编号,从0开始,这个自动编号称为数组索引
(index),可以通过数组的索引访问到数组中的元素。
格式:
数组的长度属性: 每个数组都具有长度,而且是固定的,Java中赋予了数组的一个属性,可以获取到数组的
长度,语句为: 数组名 .length ,属性length的执行结果是数组的长度,int类型结果。由次可以推断出,数
组的最大索引值为 数组名 .length-1 。
索引访问数组中的元素:
数组名 [索引]=数值,为数组中的元素赋值
变量 =数组名[索引],获取出数组中的元素

数组内存的五类划分
区域名称 作用
寄存器 给CPU使用,和我们开发无关。
本地方法栈 JVM在使用操作系统功能的时候使用,和我们开发无关。
方法区 存储可以运行的class文件。
堆内存 存储对象或者数组,new来创建的,都存储在堆内存。
方法栈 方法运行时使用的内存,比如main方法运行,进入方法栈中执行。

数组遍历
数组遍历: 就是将数组中的每个元素分别获取出来,就是遍历。遍历也是数组操作中的基石。

数组获取最大值元素
最大值获取: 从数组的所有元素中找出最大值。
实现思路:
定义变量,保存数组 0索引上的元素
遍历数组,获取出数组中的每个元素
将遍历到的元素和保存数组 0索引上值的变量进行比较
如果数组元素的值大于了变量的值,变量记录住新的值
数组循环遍历结束,变量保存的就是数组中的最大值

数组反转
数组的反转: 数组中的元素颠倒顺序,例如原始数组为1,2,3,4,5,反转后的数组为5,4,3,2,1
实现思想: 数组最远端的元素互换位置。
实现反转,就需要将数组最远端元素位置交换
定义两个变量,保存数组的最小索引和最大索引
两个索引上的元素交换位置
最小索引 ++,最大索引--,再次交换位置
最小索引超过了最大索引,数组反转操作结束


类的定义
事物与类的对比
现实世界的一类事物:
属性:事物的状态信息。 行为:事物能够做什么。
Java中用class描述事物也是如此:
成员变量:对应事物的属性 成员方法:对应事物的行为
类的定义格式
定义类 :就是定义类的成员,包括成员变量和成员方法。
成员变量 :和以前定义变量几乎是一样的。只不过位置发生了改变。在类中,方法外。
成员方法 :和以前定义方法几乎是一样的。只不过把static去掉,static的作用在面向对象后面课程中再详细
讲解。
类的定义格式举例:
public class ClassName {
  //成员变量
  //成员方法
定义类 :就是定义类的成员,包括成员变量和成员方法。
成员变量 :和以前定义变量几乎是一样的。只不过位置发生了改变。在类中,方法外。
成员方法 :和以前定义方法几乎是一样的。只不过把static去掉,static的作用在面向对象后面课程中再详细
讲解。
类的定义格式举例:
public class ClassName {
  //成员变量
  //成员方法
}
public class Student {
   //成员变量  
   String name;//姓名  
    int age;//年龄
/成员方法
    //学习的方法
    publicvoid study() {
    System.out.println("好好学习,天天向上");
  }
  //吃饭的方法
  publicvoid eat() {
    System.out.println("学习饿了要吃饭");
  }
}


对象的使用格式
创建对象:
使用对象访问类中的成员:
对象的使用格式举例:
类名 对象名 = new 类名();
对象名.成员变量;
对象名.成员方法();

成员变量的默认值
数据类型 默认值
基本类型 整数(byte,short,int,long) 0
  浮点数(float,double) 0.0
  字符(char) '\u0000'
  布尔(boolean) false
引用类型 数组,类,接口 null

一个对象,调用一个方法内存
在栈内存中运行的方法,遵循"先进后出,后进先出"的原则。变量p指向堆内存中
的空间,寻找方法信息,去执行该方法

成员变量和局部变量区别
在类中的位置不同 重点
成员变量:类中,方法外
局部变量:方法中或者方法声明上 (形式参数)
作用范围不一样 重点
成员变量:类中
局部变量:方法中
初始化值的不同 重点
成员变量:有默认值
局部变量:没有默认值。必须先定义,赋值,最后使用
在内存中的位置不同 了解
成员变量:堆内存
局部变量:栈内存
生命周期不同 了解
成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失

封装
面向对象编程语言是对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界无法直接操作和修改。
封装可以被认为是一个保护屏障,防止该类的代码和数据被其他类随意访问。要访问该类的数据,必须通过指定的
方式。适当的封装可以让代码更容易理解与维护,也加强了代码的安全性。

封装的步骤
1.使用  private 关键字来修饰成员变量。
2. 对需要访问的成员变量,提供对应的一对  getXxx 方法 、 setXxx 方法。
封装的操作——private关键字
private的含义
1. private是一个权限修饰符,代表最小权限。
2. 可以修饰成员变量和成员方法。
3. 被private修饰后的成员变量和成员方法,只在本类中才能访问

封装优化1——this关键字
this的含义
this代表所在类的当前对象的引用(地址值),即对象自己的引用。
记住 :方法被哪个对象调用,方法中的this就代表那个对象。即谁在调用,this就代表谁。

this使用格式
this.成员变量名;


封装优化2——构造方法
当一个对象被创建时候,构造方法用来初始化该对象,给对象的成员变量赋初始值。
构造方法的定义格式
修饰符 构造方法名(参数列表){
// 方法体    
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马