方法:是一种语法结构,它可以把一段代码封装成一个功能,以方便使用。
好处:提高了代码的复用性,让程序的逻辑更清晰。
public class Methoddemo1{
public static void main (String[] args){
int rs=add(a=100,b=200)
System.out.println(" 和是:"+rs)
public stastic int add(int a,int b){
int c=a+b;
return c;
}
}
}
方法的概述
定义 调用 内存图 参数传递机制 其他常见形式技术
方法定义的格式
修饰符 返回值类型 方法名(形参列表){
方法体代码(需要执行的功能代码)
return 返回值;
方法的案例
1.定义一个方法,计算1-n的和并返回。
public class Test{
public static void main(String[]agrs{
System.out.println("1-5的和:"+sum(n=5));
}
public static int sum (int n){
for(int i=1;i<=n;i++);
sum+=i;
}
return sum;
}
2.判断奇偶
public class Test2{
public sratic void main (String[]args){
}
public static void check(int number){
if(number%2==0){
System.out.println(number+"是偶数");
else{
System. out.println(num+"是奇数");
}
}
}
方法的内存原理
方法调用流程-内存图解
1.方法没有被调用的是时候,在方法区中的字节码文件中存放。
2.方法被调需要进入到栈内存中运行。
方法的运行区域在哪里?——栈内存
方法参数传递机制
1.基本类型的参数传递
2.引用类型的参数传递
java参数传递机制:值传递
实参传递给形参的是:传输实参变量中存储的值
引用类型的参数传递:地址值
方法参数传递的案例
public static void printArray(int[]arr){
System.out.println("[");
for(int i=0;i<arr.length;i++){
if(i==arr.length-1){
System.out.print(arr[;]);
System.out.print(arr[i]+",");
}
Syseem.out.print("]");
}
}
方法重载
同一个类中,出现多个方法名称相同,但形参列表是不同的,那么这些方法就是重载方法。
例如:开发武器系统
根据参数不同区分调用的是哪个方法
识别技巧:同一个类中,方法名称相同,形参列表不同。
例如:找素数
public static void main(String[]args){
for(int i=101;i<=200;i++){
boolean flag=true;//一开始认为是素数
for(j=2;j<i/2;j++){
if(i%j==0)[
flag=false;
break;
}
}
if (flag){
System.out.print(i+"/t");
}
设计对象并使用
1如何设计类 如何得到类的对象
public class 类名{ 类名 对象名=new 类名( )
1.成员变量(代表属性) Car c=new Car ( )
2.成员方法(代表行为) 如何使用对象
3.构造器 -访问属性:对象名 成员变量
4.代码类 -访问行为:对象名 方法名(......)
5.内部类
类:共同特征的描述
对象:是真实存在的具体实例
定义类的补充注意事项:类名首字母建议大写,且有意义,满足驼峰模式。
一个java文件中可以定义多个class类,但只能一个类是public修饰且类名为代码文件名。
成员变量的完整定义格式是:修饰符 数据类型 变量名称=初始化值
一般无需指定初始化值,只存在默认值。
对象在内存中的运行机制
多个对象的内存图 两个变量指向同一对象的内存图
构造器
定义在类中的,可以用于初始化一个类的对象,并返回对象地址
格式 : 修饰符 类名 (形参列表){
......
}
类 变量名称=new 构造器
构造器的分类和作用:-无参数构造器(默认存在的)初始化对象时,成员变量的数据均采用默认值
-有参数构造器:初始化对象时,可以接受参数为对象进行赋值。
this关键字
-可以出现在构造器,方法
-代表当前对象的地址
this出现在有参数构造器中的用法
public class Car{
String name;
double price;
public Car(String name,double price){
this.name=name;
this.price=price;
this出现在成员方法中的用法
public class Car{
Sring name;
doublke price;
public void gowith(String name){
System.out.println(this.name+"正在和"+"一起比赛!!");
}
}
封装
面对对象的三大特征:封装 继承 多态
封装:告诉我们如何正确设计对象的属性和方法
原则:对象代表什么,就得封装对应的数据并提供数据对应的行为
如何进行封装的更好?
一般建议队对成员变量使用private关键字修饰进(private修饰的成员只能在当前类中访问)
为每个成员变量提供配套public修饰的getter setter 方法暴露其取值和赋值
public class Student{
private int age;
public int getAge(){
return age;
}
public void setAge)(int age){
if(age>=0&&age<=200){
this.age=age;
}else{
System.out.println("请检查年龄数值!!");
}
}
标准JavaBean
也可以称为实体类,其对象可以用于在程序中封装数据。
标准Java Bean需满足如下书写要求:
成员变量使用private修饰
提供成员变量对应的set Xxx()/getXxx()方法
必须提供一个无参数构造器,有参数构造器可写可不写