学习java的第十一课——认识类与对象

本文介绍了面向对象编程的基本概念,包括类和对象的定义、属性与方法的运用,强调了代码规范的重要性。通过实例解析了如何定义类,创建和使用对象,并提供了类和对象的练习,加深对概念的理解。

认识类与对象

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fWJeCdpV-1634180120824)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20211012083657978.png)]

学习方法

理解类和对象的关系是本次课内容的前提, 放眼身边,多举例,多联想,多理解

定义类和对象,固定模板需要记忆,套用模板,多定义几个类以及对象,举一反三

代码规范意识很重要,一定要遵守(如定义类、方法、取名)

1.面向对象编程概述

在这里插入图片描述

软件开发阶段

​ 需求分析

​ 软件设计

​ 软件开发

在这里插入图片描述

​ 软件测试

​ 软件的部署和维护

身边的对象和类

在这里插入图片描述

java程序中的类就是显示生活中的类别,是一个笼统的概念

java中的对象就是现实生活中的个体,他是一个类别下的一个具象

2.类和对象

在这里插入图片描述

在现实中一般描述一个对象是从特征和行为开始描述

在程序中描述一个对象一般使用属性来描述

属性

在这里插入图片描述

姓名,年龄,体重,为描述这个人的属性

张浩,20岁,60KG,则为这个人属性的属性值

每个对象的每个属性都有特定的值(属性-属性值)

同一个类别下的不同对象,他们的属性可以相同,但是属性值都可以是不同的

方法

在这里插入图片描述

方法就是对象所执行的操作

对象:用来描述客观事物的一个实体,有一组属性和方法构成

类:具有相同属性和方法的一组对象的集合,类是对象的抽象,对象是类的具体;

类是一个抽象的概念仅仅是模板

​ 比如说一个人,一只猫

对象是你能看到能摸到的具体实体

​ 比如我,我家的猫

3.定义类

在这里插入图片描述

类中不是必须有属性和方法的,可以只有其中一个

类将现实世界中的概念模拟到计算机程序中

public class 类名{
//定义属性部分
//成员变量
属性1的类型  属性1;

属性n的类型  属性n;

//定义方法部分
//成员方法
方法1;

方法m;

}

类名首字母要大写,帕斯卡命名规则:每个单词的首字母都要大写、

//人类
public class Test020101 {
	//属性(成员变量):姓名,性别,年龄
	String name;
	char sex;
	int age;
	
	
	//方法(成员方法):吃,喝,睡觉
	public void eat() {
	//public 公共的
	//void无返回值
		System.out.println("我吃饭!");
	}
	public void drink() {
		System.out.println("我喝水!");
		}
	
	public void show() {
		System.out.println("我叫:"+name+";我是"+sex+"生;我今年"+age+"岁");
		}
}

定义类的方法

​ 首先要定义类名,然后编写类的属性和方法

//学校
public class Test020102 {
	//属性:学校名  学生数量  考上的分数
	String schoolName;
	int classNum;
	int fen ;
	
	
	//方法:输出学校信息
	public void showShoolInfo() {
		 System.out.println("学校名"+schoolName+";有"+classNum+";要"+fen+"分才能考上");
	 }
	
	
}

在这里插入图片描述

+代表是public是公共的类型

-代表是private私有的类型

4.创建和使用对象

在这里插入图片描述

//根据Test020101类创建具体对象(👆定义类中的人类)
public class Test020103 {
	// 创建人类对象:类名 对象名 = new 类名();
	public static void main(String[] args) {

		Test020101 xiaoLuo = new Test020101();

		// 调用对象的成员变量
		xiaoLuo.name = "小罗";
		xiaoLuo.age = 20;
		xiaoLuo.sex = '男';

		// 调用对象的变量方法
		// 方法调用要带括号
		xiaoLuo.show();
		xiaoLuo.drink();
		xiaoLuo.eat();

		Test020101 xiaoFeng = new Test020101();

		// 调用对象的成员变量
		xiaoFeng.name = "小冯";
		xiaoFeng.age = 18;
		xiaoFeng.sex = '男';

		// 调用对象的变量方法
		// 方法调用要带括号
		xiaoFeng.show();
		xiaoFeng.drink();
		xiaoFeng.eat();

创建对象的测试方法可以和类写在一起,但是建议分开写

5.类和对象练习

在这里插入图片描述

学生的类

//学生
public class Test020104_student {
	//属性:姓名 班级 爱好
	String name;
	int age;
	int classNum;
	String hobby;
	
	
	//方法
	public void name() {
		System.out.println(name);
	}
	
	public void age() {
		System.out.println("年龄:"+age);
	}
	
	public void classNum() {
		System.out.println("就读于:S"+classNum+"班");
	}
	
	public void hobby() {
		System.out.println("爱好:"+hobby);
	}
	
	
	
	
}

老师的类

//教师
public class Test020104_teacher {
	//属性:姓名  专业方向  教授课程  教龄
	String name;
	String zhuanyeName;
	String className;
	int teachAge;
	
	
	//方法
	public void name() {
		System.out.println(name);
	}
	public void zhuanyeName() {
		System.out.println("专业方向:"+zhuanyeName);
	}
	public void className() {
		System.out.println("教授课程:"+className);
	}
	public void teachAge() {
		System.out.println("教龄:"+teachAge);
	}
	
	
	
}

输出端

//输出
public class Test020104 {
	public static void main(String[] args) {
		Test020104_student zhangHao=new Test020104_student();
		
		zhangHao.name="张浩";
		zhangHao.age=10;
		zhangHao.classNum=1;
		zhangHao.hobby="打篮球";
		
		zhangHao.name();
		zhangHao.age();
		zhangHao.classNum();
		zhangHao.hobby();
		
		
		Test020104_teacher teacherWang=new Test020104_teacher();
		
		teacherWang.name="王老师";
		teacherWang.zhuanyeName="计算机";
		teacherWang.className="使用Java语言理解程序逻辑";
		teacherWang.teachAge=5;
		
		teacherWang.name();
		teacherWang.zhuanyeName();
		teacherWang.className();
		teacherWang.teachAge();
	}
	
	
	
}
6.类的方法

方法就是一个可以使用的功能
在这里插入图片描述

public String getName(){
return name;
}

return一个和方法返回值类型一致的值

只能说return一个值

return返回值并且同时跳出方法

String name = zhangSan.getname();
//此时接收的是一个字符串,需要输出才能看到
System.out.println(name);

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MdeaR1pj-1634180120847)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20211013095723344.png)]

本类中的方法可以互相调用

调用类的方法

因为main是一个static静态;

类的普通方法可以直接调用,main方法除外

在这里插入图片描述

7.类的方法练习

在这里插入图片描述

类部分

//景区的对象
public class Test020105_scenic {
	//属性
	String name;
	int age;
	
	//方法
	public void price(){
		if(age>0 && age<=18) {
			System.out.println(name+"的年龄为:"+age+",门票免费");
		}else if(age>18){
			System.out.println(name+"的年龄为:"+age+",门票为:20元");
		}
		
	}
}

输出部分


import java.util.*;

public class Test020105 {
public static void main(String[] args) {
	Scanner input = new Scanner(System.in);
	Test020105_scenic scenic = new Test020105_scenic();
	do{
		System.out.print("请输入姓名");
		scenic.name = input.next();
		if(!scenic.name.equals("n")) {
		System.out.print("请输入年龄");
		scenic.age =input.nextInt();
		
		scenic.price();
		
		System.out.println("");
		}
		
	}while(!scenic.name.equals("n"));
	
	System.out.print("退出程序");
}
}


在这里插入图片描述

//密码管理的类
public class Test020106_password {
	String name;
	String password;
	
	public void show() {
		System.out.println("管理员用户名为:"+name+";密码为:"+password);
	}
	
}

输出



import java.util.*;

public class Test020106 {

	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		String name;
		String password;
		
		Test020106_password admin = new Test020106_password();
		
		admin.name="admin";
		admin.password = "123456";
		admin.show();
		
		
		System.out.print("请输入用户名:");
		name =input.next();
		System.out.print("请输入密码:");
		password =input.next();
	
		if(admin.name.equals(name)  &&  admin.password.equals(password)) {
			//输入用户名和密码正确,才有权限修改密码
			System.out.print("\n请输入新密码");
			admin.password =input.next();
			System.out.println("修改密码成功,您的密码为"+admin.password);
		}else {
			//输入用户名和密码不正确,没有权限修改密码
			
			System.out.println("用户名和密码不匹配!您没有权限更新管理员信息。");
		}
		
	}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值