Student Day11

今日课堂学习:面向对象

面向过程 :1,2,3步骤,----算法
面向对象 :Oriented Object
OOA(面向对象分析),OOD(面向对象设计),OOP(面向对象编程)
模拟现实社会,描述复杂的问题场景,让对象自行解决问题。
面向对象是从大处着眼,面向过程是从细节处理,两者相辅相成。
概念
对象 :万事万物 皆对象。看得见摸得着的一个具体存在。
静态的 特征:姓名,性别,身高,电话号码
动态的特征:行为,动作,功能等。上课,吃饭,睡觉
:具有相同的特征的对象的集合。
类和对象的关系
类是一个概念,是抽象,对象一个具体的对象,
类是集合,对象是其中的一个个体。
类是数据类型,对象是实例。
学生--张荣 共享单车--一辆青桔 牛--牛头(X)
面向对象的开发步骤:
1、先把对象归类,抽象出类
属性:数据类型 变量名; String name;
方法:访问控制符 返回值类型 方法名(参数列表){
                          方法体
                }
//访问控制符 public
//返回值类型 void
//方法名 camel法,见名之意
//参数列表 可以省略
//方法体 具体的执行过程
2、由类来创建对象
类名 对象名=new 类名();
3、使用.操作符来访问对象的属性和方法
对象名.属性 全局变量
局部变量
默认值
有。int---0 String-null double--0.0 boolean -false
作用域
整个类,所有的方法
定义的方法内,或就近的大括号
生命周期
对象的创建---对象的销毁
方法的开始--方法的结束
对象名.方法()

        如果要特指全局变量,需要使用this关键字
        this:当前对象,谁调用这个方法,this就指代谁
1.3 方法
抽取原则:一个行为/动作/功能,抽取成一个方法
语法:
访问控制符 返回值类型 方法名(参数列表){
方法体
}
返回值类型 :没有返回值:void
有返回值 :int、String 等
方法体最后一句要添加return 数据类型的值;
方法的调用
1、方法只有调用才会执行
2、方法调用的过程,是压栈和弹栈的过程,就是执行方法体的过程
调用方法
不同类中,需要初始化对象,通过对象名.方法名();
同一个类中,可以只写方法名();

 今日课堂作业:

/**1.定义狗类 
属性:昵称,品种,健康值(int) 
方法:吃,玩飞盘 
定义测试类 实例化对象,调用方法
*/
public class Dog {
		String name;
		String variety;//品种
		int healthIndex;
		public void eat() {
			System.out.println("吃");
		}
		public void play() {
			System.out.println("玩飞盘");
		}
}

public class TestDog {

	public static void main(String[] args) {
		Dog a=new Dog();
		a.name="点点";
		a.variety="串串";
		a.healthIndex=10;
		System.out.println("小狗名字:"+a.name+"\n品种:"+a.variety+"\n健康值:"+a.healthIndex);
		a.eat();

		a.play();
			
	}

}

代码运行如下:

 

/**2.定义矩形类:
 属性:宽 、高
 方法:计算周长,面积(要求把结果返回)
定义测试类:实例化两个矩形对象,并求出周长和面积。
*/
public class Rectangle {
	int wide;
	int hight;
	public int perimeter() {
		int perimeter=(wide+hight)*2;
		System.out.println("周长:"+perimeter);
		return perimeter;
	}
	public int acreage() {
		int acreage=wide*hight;
		System.out.println("面积:"+acreage);
		return acreage;
	}
}

public class TestRec {

	public static void main(String[] args) {
		Rectangle a=new Rectangle();
		a.wide=8;
		a.hight=10;
		a.perimeter();
		a.acreage();

	}

}

代码运行如下:

周长:36
面积:80


3.实现级联菜单

import java.util.Scanner;
public class Menu {
	Scanner scanner=new Scanner(System.in);
	public void  stairMenu() {
		boolean flag;//false输入错误,true输入正确
		do {
			flag=true;
			System.out.println("********欢迎进入银行系统*********");
			System.out.println("\t1.注册");
			System.out.println("\t2.登录");
			System.out.println("\t3.退出");
			System.out.println("**********************");
			System.out.println("请选择");
			int num=scanner.nextInt();
			switch(num){
			case 1:
				System.out.println("注册");
				break;
			case 2:
				System.out.println("登录");
				secondMenu();
				break;
			case 3:
				System.out.println("谢谢使用");
				break;
			default:
				flag=false;
				System.out.println("输入错误,请重新输入");
				break;
			}
		}while(!flag);
	}
	public void  secondMenu() {
		System.out.println("**********************");
		System.out.println("\t1.查询余额");
		System.out.println("\t2.存款");
		System.out.println("\t3.取款");
		System.out.println("**********************");
		System.out.println("请选择(输入0,返回上一级菜单)");
		int num1=scanner.nextInt();
		switch(num1){
		case 0:
			 stairMenu();
			break;
		case 1:
			System.out.println("查询余额");
			break;
		case 2:
			System.out.println("存款");
			break;
		case 3:
			System.out.println("取款");
			break;
		default:
			break;
		}
	}
}

public class TestMenu {

	public static void main(String[] args) {
		Menu a=new Menu();
		a.stairMenu();


	}

}

代码运行如下:

//4、定义一个计算器,实现两个数的加减乘除。
public class Counter {
	double num1;
	double num2;
	public double sum() {
		double sum=num1+num2;
		System.out.println("求和:\t"+sum);
		return sum;
	}
	public double minus() {
		double minus=num1-num2;
		System.out.println("求减:\t"+minus);
		return minus;
	}
	public double multiplication() {
		double multiplication=num1*num2;
		System.out.println("求乘:\t"+multiplication);
		return multiplication;
	}
	public double divide() {
		double divide=num1/num2;
		System.out.println("求除:\t"+divide);
		return divide;
	}
}

 


public class TestCou {

	public static void main(String[] args) {
		Counter a=new Counter();
		a.num1=12;
		a.num2=10;
		a.sum();
		a.minus();
		a.multiplication();
		a.divide();

	}

}

代码运行如下:

求和:    22.0
求减:    2.0
求乘:    120.0
求除:    1.2
 

/**5.账户类:
	属性:用户名,密码
	方法:登录验证,要求返回验证结果
          正确的账户信息是admin/123456
*/
public class Login {
	String name;
	String code;
	String name1="admin";
	String code1="123456";
	public boolean check() {
		boolean flag=false;
		
			if(name.equals(name1)&&code.equals(code1) ){
				
				flag=true;
			}else {
				System.out.println("登录失败,请重新登录");
			}
		
		return flag;
	}
	
}
import java.util.Scanner;

public class TestLogin {

	public static void main(String[] args) {
		Login a=new Login();
		Scanner scanner=new Scanner(System.in);
		System.out.println("请输入用户名");
		a.name=scanner.next();
		System.out.println("请输入密码");
		a.code=scanner.next();
		a.check();
	}

}

代码运行如下:

 

 总结如下:

创建对象:

类名(数据类型) 对象名=new 类名();

对象名.方法()

public void 没有返回值;

public 数据类型()有返回值,需要return数据类型结束;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值