1.类的无参方法
语法格式:
public 返回值类型 方法名() {
//方法的主体
}
返回值的两种情况:
第一种情况:如果方法没有返回值,返回值类型为void
第二种情况:如果方法具有返回值,方法中必须使用关键字return返回该值,返回值类型为该返回值的类型。
return的作用:跳出方法,返回结果
在方法调用中需注意:
方法的返回值类型为void,方法中不能有return 返回值!
方法不能返回多个值!
多个方法不能相互嵌套定义!
不能在方法外部直接写程序逻辑代码!
调用一个无返回值类型的方法,不能使用任何变量或对象来接收。例子:
方法:
public void get (){}
使用:
对象.get ();
练习:测试类
public class Administrator {
String admin;
int password;
int newPassword;
public void amend(){
if ("admin".equals(admin) && "123456".equals(password)){
System.out.println("");
}else {
System.out.println();
}
}
}
管理员类
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int newPassword = 0;
do {
Administrator center = new Administrator();
System.out.println("请输入用户名:");
String admin = sc.next();
System.out.println("请输入密码:");
int password = sc.nextInt();
if ("admin".equals(admin) && 123456 == password){
System.out.println("请输入新密码:");
newPassword = sc.nextInt();
System.out.println("修改成功");
}else {
System.out.println("不匹配,您没有权限");
break;
}
center.admin = admin;
center.password = password;
center.newPassword = newPassword;
center.amend();
}while (false);
}
2.成员变量和局部变量
定义:在类中定义的变量为类的成员变量,在方法中定义的变量称为局部变量。
例如:
public class AutoLion{
变量1类型 变量1;
变量2类型 变量2;
变量3类型 变量3;
public 返回类型 方法1(){
变量4类型 变量4;
}
public 返回类型 方法2(){
变量5类型 变量5;
}
以上变量1,2,3位成员变量;变量4,5为局部变量。
成员变量和局部变量的区别
1.作用域不同
局部变量的作用域仅限于定义它的方法
成员变量的作用域在整个类内部都是可见的
2.初始值不同
Java 会给成员变量一个初始值
Java 不会给局部变量赋予初始值
注意:在同一个方法中,不允许有同名局部变量,在不同的方法中,可以有同名局部变量。
在同一个类中,成员变量和局部变量同名时,局部变量具有更高的优先级。
1.类的带参方法
语法格式:
<访问修饰符> 返回类型 <方法名>(<形式参数列表>) {
//方法的主体
}
<形式参数列表>是传递给方法的参数列表,列表中各参数间以逗号分隔,
格式:数据类型 参数1, 数据类型 参数2, … , 数据类型 参数n。如果n=0,则代表没有参数,这时的方法就是前面学习过的无参方法
调用一个有返回值类型的方法,必须使用该返回值类型的变量或对象来接收。例子:
方法:
public String get (){
return "";
使用:
String 变量名=对象.get ();
调用方法时,需注意两点:
1:先实例化对象,在调用方法
2:实参的类型、数量、顺序都要与形参一 一对应(必须一一对应)
练习:
修改客户姓名,输入新、旧姓名,修改并显示是否修改成功
修改类:
public class Amend {
Scanner sc = new Scanner(System.in);
int i;
String[] names = new String[5];
public void addname(String name){
for (i = 0;i < names.length;i ++){
if (names[i] == null){
names[i] = name;
break;
}
}
}
public void showname() {
System.out.println("***********************************");
for (String name : names) {
if (name != null) {
System.out.println(name + "\t");
}
}
}
public void amendname(String name){
String newname;
for (i = 0;i < names.length;i ++){
if (name.equals(names[i])){
System.out.println("请输入新的名字:");
System.out.println("*********************************");
newname = sc.next();
names[i] = newname;
}
}
showname();
}
}
测试main方法:
public class AmendTest {
public static void main(String[] args) {
String name;
Scanner sc = new Scanner(System.in);
Amend amend =new Amend();
for (int i = 0;i < 5;i ++){
System.out.println("请输入客户姓名:");
name = sc.next();
amend.addname(name);
}
amend.showname();
System.out.println("请输入需要修改的名字");
name = sc.next();
amend.amendname(name);
}
}
基本类型和引用类型传参的区别:
1.如果方法传递的参数为基本数据类型时,操作传递的是变量的值,改变形式参数
的值不会影响实际参数的值。
2.如果方法传递的参数为引用数据类型时,传递参数的过程是把原对象的引用(可理解为内存地址)传递给另一个引用。
练习:
[数组作为传参]
客户姓名类:
//客户姓名排序类
public class Sort {
public void rank (String[] names){
Arrays.sort(names);
for (String name : names) {
System.out.println(name);
}
}
public void show (String[] names){
for (String name : names) {
System.out.println(name);
}
}
}
Main:
public class SortTest {
public static void main(String[] args) {
String[] names = {"Tom","Jack","Merry","Smith","Sunny"};
Sort sort = new Sort();
System.out.println("**********************");
sort.show(names);
System.out.println("**********************");
sort.rank(names);
}
}