认识类与对象
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fWJeCdpV-1634180120824)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20211012083657978.png)]](https://i-blog.csdnimg.cn/blog_migrate/862977d03cfd087a3915d3602434b13e.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)]](https://i-blog.csdnimg.cn/blog_migrate/4d1aecc8079fff9141e6efdd2116b49e.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("用户名和密码不匹配!您没有权限更新管理员信息。");
}
}
}
本文介绍了面向对象编程的基本概念,包括类和对象的定义、属性与方法的运用,强调了代码规范的重要性。通过实例解析了如何定义类,创建和使用对象,并提供了类和对象的练习,加深对概念的理解。
170万+

被折叠的 条评论
为什么被折叠?



