如何定义类的某种行为
方法返回值的类型-《----方法定义------》方法主体
public 返回值类型 方法名(){
//方法的主体
//return 表达式;
}
return 跳出方法 返回结果
方法没有返回值 返回值类型为void
方法的调用:
对象名.方法名();
例如:小明他爸给他买个狮子
定义调用狮子的功能与方法
狮子会跑会叫
还能抢球
颜色黑色
属性:黑色
方法:
会跑
会叫
抢球
代码:
public class AutoLion {
String color;
public void run(){
System.out.println("跑了起来");
}public void cry(){
System.out.println("叫了起来");
}
public String rolBall(){
String ball="皮球";
return ball;
}
public String getColor(){
return color;
}
public String showLion(){
String str="这是一只"+getColor()+"色的狮子";
return str;
}
}
编写测试类:
public class Test1 {
public static void main(String[] args) {
AutoLion lion=new AutoLion();
lion.color="黑";
String c=lion.getColor();
System.out.println("获取的颜色"+c);
lion.run();
lion.cry();
String str=lion.showLion();
System.out.println(str);
}
}
其中 String str=“这是一只”+getColor()+“色的狮子”;
是利用此类的另一个方法
结果:
如果调用另一个类的方法则需要在此类中弄一个对象来引用方法
public void a( ) {
b( ); //调用b( )
}
例如
弄一个手机类
弄一个电池类
创建一个手机对象显示
下载
播放
电池的充电方法
代码如下I:
电池类:
public class Cell {
String name;
public int in(){
int num=15;
return num;
}
}
手机类:
public class Phone {
public void play(){
System.out.println("正在播放"+download());
}
public String download(){
String name="lemon";
return name;
}
public void cd(){
Cell cell=new Cell();
int num=cell.in();
cell.name="华为";
System.out.println(cell.name+"电池正在充电剩余"+num+"%");
}
}
编写测试类:
public class test5 {
public static void main(String[] args) {
Phone phone=new Phone();
phone.play();
phone.download();
phone.cd();
}
}
结果:
作用域
成员变量可以应用于整个类中
而且可以不给初始值,默认初始值
int=0
String=null
局部变量只能用于方法中
且没有初始值
public class aaaaaaa {
int a;
public void show(){
a=10;
}
public void showw(){
a=10;
}
}
a为成员变量
所以所有方法都可以用
而且不用给初始值
a为局部变量只能用于show方法而不能用showw方法
局部变量没有初始值也会报错
注释:
javaDoc注释:使用“/**“开始和“*/“结束,用来注释类、属性和方法等
综合例题:输入用户名和密码登陆登陆系统实现菜单转换
分析:需要三个类一个登陆类,用来验证用户名和密码利用boolean类型的方法判断是否正确登陆或退出
一个菜单转换类来实现菜单来回转换,输入0返回
一个测试类用来测试
登陆类:
属性:
用户名 String username
密码 String passwd
方法登陆 创建boolean类型方法。
在控制台输入的用户名和密码等于设定的用户名密码则为true登陆成功跳入菜单转换类
false则登录失败
代码:
import java.util.Scanner;
public class User {
String username;
String passwd;
public boolean login(){
Scanner input=new Scanner(System.in);
System.out.println("用户");
username=input.next();
System.out.println("密码");
passwd=input.next();
if (username.equals("admin")&&passwd.equals("12345")){
return true;
}
return false;
}
}
菜单转换类
属性:无
方法创建四个显示方法分别为
显示登陆菜单
显示主菜单
显示客户信息管理菜单
显示幸运抽奖菜单
在登陆菜单用boolean类型方法引用User类中的登陆方法判断是否登陆成功,成功显示主菜单,不成功则继续显示登陆菜单,swich来控制菜单转换,1为登陆2,为退出
其他方法也用swich来实现调用方法的循环
代码:
import java.util.Scanner;
public class Menu {
Scanner input=new Scanner(System.in);
public boolean showLoginMenu(){
System.out.println("登录系统");
System.out.println("退出系统");
System.out.println("请输入数字");
int num=input.nextInt();
switch (num){
case 1:
User user=new User();
boolean val=user.login();
if (val==true){
showMainMenu();
}else {
showLoginMenu();
}
break;
case 2:
System.out.println("退出");
return false;
}
return false;
}
public void showMainMenu(){
System.out.println("1.客户信息");
System.out.println("2.真情回馈");
System.out.println("请选择或者输入0返回上一级");
int num=input.nextInt();
switch (num){
case 1:
showCustMenu();
break;
case 2:
showSendGMenu();
break;
default:
showLoginMenu();
}
}
public void showCustMenu(){
System.out.println("客户信息");
System.out.println("1.查看客户信息");
System.out.println("2.查看客户积分");
System.out.println("请选择或者输入0返回上一级");
int num=input.nextInt();
switch (num){
case 1:
System.out.println("查看客户信息");
break;
case 2:
System.out.println("查看客户积分");
break;
default:
showMainMenu();
}
}
public void showSendGMenu(){
System.out.println("真情回馈");
System.out.println("1.幸运大放送");
System.out.println("2.幸运抽奖");
System.out.println("请选择或者输入0返回上一级");
int num=input.nextInt();
switch (num){
case 1:
System.out.println("幸运大放送");
break;
case 2:
System.out.println("幸运抽奖");
break;
default:
showMainMenu();
}
}
}
这里就用到了在Menu类里引用了User类的登陆方法
测试类:
public class Test2 {
public static void main(String[] args) {
OrderMgr orderMgr=new OrderMgr();
orderMgr.showMenMenu();
}
}
结果: