java实训第六天8/02

本文详细介绍了Java中方法的定义与使用,包括静态方法与非静态方法的区别、方法重载的概念及其应用、构造方法的作用及特点。同时,文章深入探讨了面向对象的基本概念如封装、继承与多态,并通过具体例子解释了如何使用面向对象的方式分析问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.方法如何定义
a)static修饰,表示静态的,static修饰的内容只能访问static修饰内容
public static 返回值类型 方法名(参数类型 参数名,...){

return 值;//如果返回值类型 为 void return 可以省略 return;
}
通过方法名直接调用
返回值类型 变量=方法名(参数的值,...);
注意:如果返回值 为 void 不能用变量接收
例如:
public static int add(int i,int j){
int r=0;//

return r;
}

int n=add(12,34);
b)没有static修饰
public 返回值类型 方法名(参数类型 参数名,...){

return 值;//如果返回值类型 为 void return 可以省略 return;
}
访问 必须通过  对象.方法名  的形式

例如:

public class Test{

public int add(int i,int j){
int r=0;

return r;
}

public static void main(String args[]){
Test t=new Test();
int n=t.add(12,34);
}
}

2.方法的参数
a)基本数据类型的参数
b)引用数据类型的参数
把变量的值传递给方法后,在方法内的操作是否影响该变量的值
就观察,有没有改参数重新赋值,
如果重新赋值 那么不影响外部的数据
如果没有重新赋值,则影响外部的数据
int x=30;
changeX(x);
System.out.println(x);//30
public static void changeX(int x){
x=50;
}

int[] nums={12};
changeArray1(nums);
System.out.println(nums[0]);//50
changeArray2(nums);
System.out.println(nums[0]);//
public static void changeArray1(int[] nums){
nums[0]=50;

public static void changeArray2(int[] nums){
nums=new int[5];
nums[0]=100;

3.方法的重载(java中静态多态、编译时多态):



同一个类中出现的两个及以上的同名方法,这些方法的参数列表不同
我们这样的方法称为重载的方法
参数列表不同:
i)参数的类型不同
ii)参数的个数不同
iii)参数类型的顺序不同

三个条件
i)同一个类 
ii)参数列表不同
iii)方法名必须相同

例如:
public  class Test{

public static void add(){

}

public static void add(int i){

}

public void add(int i,double j){

}

public int add(double i,int j){

}
public int add(String i){

}

}
方法重载的调用,是根据实参决定,实参的个数,实参的类型,实参的顺序
add(23,45.5);
add(12.0,12);
add("123");



System.out.println();

Arrays.sort();

Arrays.toString();


4.构造方法:
在java的方法中有一类方法比较特殊
这种方法没有任何返回值类型而且方法名和类名相同,称为构造方法
用户构建该类的对象,通过 new 关键字访问


5、实体:真实存在的物体:对应的是java中的一个对象
实体类 java 类 class
6.面向对象的概念:
a)抽象:就是从实体中抽取共性的过程,查询一个类的过程
java面向对象分析的过程 就是 抽象的过程
学生张三 抽象出 学生类(共性) 仔细
学生李四
语文
b)对象:java中对现实世界中实体的代替,用于在虚拟世界中模拟
现实世界中对象的行为
c)类:  是一组具有相同属性和行为的对象(实体)的抽象
由现实世界中实体---抽象--- 类----java----根据类构建对象,模拟实体
public class Student{
String name;
public void study(){

}
}
类和对象的关系:
类是对象的抽象,是构建对象的模板
对象是类的一个实例,类中属性和行为 在对象中激活
Student zhangsan=new Student();
我们这么说:zhangsan是Student类的一个对象
是指zhangsan是Student类 对象的一个引用
new Student() 才是真正的Student对象
7.面向对象的特征:
a)封装:对外隐藏实现的细节
i)把属性和行为封装成一个整体使用
ii)通过访问修饰符把一些属性和行为隐藏
b)继承:子类继承父类后拥有父类的属性和行为
龙生龙 凤生凤 老鼠的孩子会打洞
就是为了实现代码的复用

public class Teacher{
String name;
public void detail(){
System.out.println("大家好,我叫"+name);
}
}
public class JavaTeacher extends Teacher{

}
public class UITeacher extends Teacher{

}
前提是 必须 满足 is a 的关系,现实世界中是否满足
使用继承,是代码优化的一个过程
java中继承 是 单一继承
c)多态:一个父类表现为多个子类的能力
Teacher tea=new JavaTeacher();
Teacher tea=new UITeacher();

RenWu
--------------
xingMing
wuQi
zhanDouLi
naiLi
----------------
ziWoJieShao()
类图中:- 表示该属性或行为 是 private 私有的
+ 表示该属性或行为 是 public 公有的
#或者锁 表示该属性或行为 是 protected 受保护的
空白 表示该属性或行为 是 default 默认的


public class RenWu{
String xingMing;
String wuQi;
int zhanDouLi; 
int naiLi;

public String ziWoJieShao(){
String msg="";
msg=xingMing+"武器为:"+wuQi+" 战斗力:";
for(int i=0;i<zhanDouLi;i++){
msg+="※"
}
msg+=" 耐力:";
for(int i=0;i<naiLi;i++){
msg+="※";
}
return msg;
}
}

8.如何使用面向对象的方式分析问题
a)找到问题的参与者:涉及到的实体 找 名词
b)找参与者的修饰词:对参与者说明性的文字  修饰词
c)找参与者具有的行为:参与者所做的事情  动词
d)找参与者行为的影响内容:作为 行为的参数使用


一个红馒头引发的血案
a)参与者:馒头 血案
b)修饰词:
馒头:

一个 
红色
血案:
名称
c)动词:
馒头:
引发(血案)
血案:
自我介绍


老张开车去东北
a)对象-----抽象为 类
  老张 ------ 司机类
  车       ------ 车类
  东北 ------ 地址类
b)修饰词------- 类中属性 
  老张 ------ 司机类
    姓名:老张 name:String
  车       ------ 车类

  东北 ------ 地址类
名称:东北 name:String
c)找行为 动词
  老张 ------ 司机类
    姓名:老张 name:String
开(车) driver(Car car):String
  车       ------ 车类
去(地址) go(Address address):String
  东北 ------ 地址类
名称:东北 name:String
描述() detail():String



9.变量:就是对内存中数据的代替,变量中存放的是数据在内存中的位置
int age=20;// 20 在常量池中的位置
int m=20;
age==m :true
Scanner input1=new Scanner(System.in);
Scanner input2=new Scanner(System.in);
input1==input2 :false
分类:
a)全局变量:在本类内部的所有方法中都可以访问
b)局部变量:就是在某个 代码块中声明的变量,只能在该代码块中使用
注意:
i)如果局部变量和全局变量名称相同 ,局部变量覆盖全局变量
ii)全局变量又称为属性,成员变量:
在创建该类型的对象时 ,虚拟机会自动对其初始化
局部变量,声明必须初始化 在能使用
public class Test{


int num;//0

public void chang(){
int num=50;

}
}
10.
两个学生
辛聪  对象----根据一个模板构建---类
自我介绍
大家好我叫辛聪,今年20岁
丁凯
自我介绍
大家好我叫丁凯,今年21岁


需要用计算机模拟 这两同学的自我介绍


姓名:
年龄:
自我介绍:就是把属性的值在控制台中打印


Student 
name:String 
age :int
detail():void

11.构造方法
a)特点:
1)方法名与类名相同
2)没有返回值类型
3)只能通过new关键字在类的外面访问
b)每一个类中,至少有一个构造方法,如果没有添加,
编译器自动添加默认的空参构造
c)作用:
1)用于创建对象  通过new 关键字调用
new Student();
2)用于给属性赋值,可以避免出现遗漏的情况
Student stu=new Student("宇文玥",30);


12.掌握:
a)创建一个类,添加相应的属性和行为
b)能够通过构造方法完成属性的赋值
c)通过构造方法创建该类的对象
d)通过对象操作类中的属性和方法




作业:
1.把ppt中 人物的类创建一下
2.1,2 再写一遍
3.3 
4.选做
Student[] stus=new Student[5];
for(int i=1;i<stus.length;i++){
  for(int j=0;j<stus.length-i;j++){
       if(stus[j].score>stus[j+1].score){


     }
 }


}


















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值