【Java面向对象】java的学习之旅08-类和对象

  • 对象:用来描述客观事物的一个实体,由一组属性和一组行为组成
  • 类:具有相同属性和方法的一组对象的集合,类是对象的抽象,对象是类的具体

通过几个Demo来进一步详细解释一下类和对象的概念

定义一个Student类

public class Student {

	//定义属性
	
	String name;
	
	char sex;
	
	//定义方法,自我介绍
	public void showInfo() {
		System.out.println("接下来是我的自我介绍。");
		System.out.println("我叫" + name + ",我是" + sex + "生。");
	}

}

在主类中去创建对象

public static void main(String[] args) {
		
		//通过定义好的类创建实体对象
		Student stu1 = new Student();
		
		System.out.println(stu1.name);
		
		stu1.name = "阿文";
		
		stu1.sex = '女';
		
		stu1.showInfo();
		
}
方法的使用

组成:访问修饰符 [其他修饰符] 返回值类型(没有返回值用void) 方法名 ([参数列表]) {方法体}

注意事项:

  • 方法不能嵌套定义
  • 静态方法可以直接调用本类中的静态方法,不能调用本类中的普通方法。
  • 普通方法可以直接调用本类中的普通方法和静态方法。
  • 有返回值的方法,必须在方法体内使用return关键字返回对应数据类型的返回值,并且return只能是方法体的最后一行代码。

方法的形式:

	// 公开的 空返回值 无参的方法
	public void function1() {
		System.out.println("这是一个方法");
	}

	// 有返回值 无参的方法
	public int function2() {
		System.out.println("这也是一个方法");
		return 666;
	}

	// 有返回值 有参的方法
	public double function3(double a, double b) {
		return a + b;
	}
	
	// jdk1.5+ 方法的可变参
	public double function4(double... nums) {
		double sum = 0;
		for (double num : nums) {
			sum += num;
		}
		return sum;
	}
重点: == 和 equals 的区别:
  • 前者是运算符,后者是方法
  • 前者可以用于比较基本数据类型,也可以比较用数据类型。基本数据类型比较的是值相等,引用数据类型比较的是地址相等。
  • 后者只能用于比较引用数据类型,比较的是内容相等。如果引用数据类型没有重写equals方法,默认比较的还是地址,和前者一致。

例:

public static void main(String[] args) {
		
		//基本数据类型
		int a = 1;
		int b = 1;
		System.out.println(a == b);
		
		//引用数据类型
		String str1 = new String("hello");
		String str2 = new String("hello");
		System.out.println(str1 == str2);
		
		System.out.println(str1.equals(str2));
	}

类和对象以及== 和 equals的实例:

/**
 * 用户注册、登录、修改密码
 */

先定义一个用户类

public class User {
	
	public String realName;
	
	public String username;
	
	public String password;
	
}

在主方法中实现业务逻辑

public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		
		User[] users = new User[5];
		int index = 0;
		
		while (true) {
			System.out.println("请选择:1.注册  2.登录  3.修改密码");
			int choose = sc.nextInt();
			
			switch (choose) {
			case 1:
				User user = new User();
				System.out.println("请输入真实姓名:");
				user.realName = sc.next();
				System.out.println("请输入用户名:");
				user.username = sc.next();
				System.out.println("请输入密码:");
				user.password = sc.next();
				users[index] = user;
				index++;
				System.out.println("注册成功!");
				break;
			case 2:
				System.out.println("请输入用户名:");
				String username = sc.next();
				System.out.println("请输入密码:");
				String password = sc.next();
				boolean flag = true;
				for (User u : users) {
					if (u != null && u.username.equals(username) && u.password.equals(password)) {
						System.out.println("登录成功!");
						flag = false;
					}
				}
				if (flag) {
					System.out.println("用户名或者密码错误!");
				}
				break;
			case 3:
				System.out.println("请输入用户名:");
				String username1 = sc.next();
				System.out.println("请输入密码:");
				String password1 = sc.next();
				boolean flag1 = true;
				for (User u : users) {
					if (u != null && u.username.equals(username1) && u.password.equals(password1)) {
						flag1 = false;
						
						System.out.println("请输入新密码:");
						u.password = sc.next();
						System.out.println("修改成功!");
					}
				}
				if (flag1) {
					System.out.println("用户名或者密码错误!");
				}
				break;
			    
			default:
				System.out.println("输入错误!重新选择!");
				break;
			}
		}
		
		//sc.close();
		
	}

总结:

java中最基本也是最重要的概念

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JeffHan^_^

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值