//榨汁机类
public class ZhazhiJi {
public String zhazhi ( String fruit ) {
String juice = fruit + "汁";
return juice;
}
public static void main(String[] args){
/*调用zhazhi方法*/
ZhazhiJi myZhazhiji = new ZhazhiJi();
String myFruit = "苹果";
String myJuice = myZhazhiji.zhazhi(myFruit);
System.out.println(myJuice);
}
}
/**
*
* 实现学生信息的管理
*
*/
public class StudentsBiz {
String[] names = new String[30]; // 学员姓名数组
/**
* 增加学生姓名
* @param name要增加的姓名
*/
public void addName(String name){
for(int i =0;i<names.length;i++){
if(names[i]==null){
names[i]=name;
break;
}
}
}
/**
* 显示本班的学生姓名
*/
public void showNames(){
System.out.println("本班学生列表:");
for(int i =0;i<names.length;i++){
if(names[i]!=null){
System.out.print(names[i]+"\t");
}
}
System.out.println();
}
/**
* 在一定区间查找学生姓名
* @param start 开始位置
* @param end 结束位置
* @param name 查找的姓名
* @return find 是否查找成功
*/
public boolean searchName(int start,int end,String name){
boolean find = false; // 是否找到标识
// 指定区间数组中,查找姓名
for(int i=start-1;i<end;i++){
if(names[i].equals(name)){
find=true;
break;
}
}
return find;
}
}
import java.util.Scanner;
public class TestSearch {
/**
* 调用带3个参数的方法
*/
public static void main(String[] args) {
StudentsBiz st = new StudentsBiz();
Scanner input = new Scanner(System.in);
for(int i=0;i<5;i++){
System.out.print("请输入学生姓名:");
String newName = input.next();
st.addName(newName);
}
st.showNames();
System.out.print("\n请输入开始查找的位置:");
int s = input.nextInt();
System.out.print("请输入结束查找的位置:");
int e = input.nextInt();
System.out.print("请输入查找的姓名:");
String name = input.next();
System.out.println("\n*****查找结果*****");
if(st.searchName(s,e,name)){
System.out.println("找到了!");
}
else{
System.out.println("没找到该学生!");
}
}
}
基本数据类型,操作传递的是变量的值,改变一个变量的值不会影响另一个变量的值。引用数据类型(类、数组和接口),赋值是把原对象的引用(可理解为内存地址)传递给另一个引用
//修改学生成绩
//学生类
public class Student {
//属性
public String name;//姓名
public int score;
//方法
public void showInfo(){
System.out.println(name+"的成绩是:"+score);
}
}
public class ModifyScore {
//修改学员成绩,少于60的提高2分
public void modifyScore(Student[] stus){
for(int i=0;i<stus.length;i++){
if(stus[i].score<60){
stus[i].score+=2;
}
}
}
//输出学员信息
public void showInfo(Student[] stus){
for(Student stu:stus){
stu.showInfo();
}
}
public static void main(String[] args) {
ModifyScore ms=new ModifyScore();
Student[] stus=new Student[3];
Student s1=new Student();
s1.name="张三";
s1.score=40;
Student s2=new Student();
s2.name="李四";
s2.score=90;
Student s3=new Student();
s3.name="王五";
s3.score=43;
stus[0]=s1;
stus[1]=s2;
stus[2]=s3;
ms.modifyScore(stus);
ms.showInfo(stus);
}
}
//构造方法
package structMehtod;
//学生类
public class Student {
//属性
public String name;//姓名
public int score;
public Student(String name,int score){
this.name=name;
this.score=score;
}
//方法
public void showInfo(){
System.out.println(name+"的成绩是:"+score);
}
}
//方法重载
package structMehtod;
public class Calc {
public int getSum(int num1,int num2){
System.out.println("int");
return num1+num2;
}
public double getSum(double num1,double num2){
System.out.println("double");
return num1+num2;
}
public double getSum(double num1,double num2,double num3){
return num1+num2+num3;
}
public static void main(String[] args) {
Calc calc=new Calc();
System.out.println(calc.getSum(67, 89));
System.out.println(calc.getSum(67, 89,78.4));
}
}
首先,要弄清楚何为重载。方法名相同,参数列表不同的方法,这两个要素要谨记,参数列表不同即参数数据类型、参数数量、参数排列顺序不同。
如:void print(int age,String name)和void print(String name,int age) 。
重写就是发生在父类和子类关系的类中,子类定义了与父类的完全相同的方法,只是方法体不同。注意定义中提到了继承(父类、子类)。所以,还有一个不同之处就是重写不在同一个类中,而重载在同一个类中发生
//简易计数器
public class Calc {
public int getSum(int num1,int num2){
return num1+num2;
}
public double getSum(double num1,double num2,double num3){
return num1+num2+num3;
}
public static void main(String[] args) {
Calc calc=new Calc();
System.out.println(calc.getSum(67, 89));
System.out.println(calc.getSum(67, 89,78.4));
}
}