类与对象:
- 类 Class :
- 类是一种对对象的抽象概念,是一种归纳总结,如何划分取决于我们对事物的抽象程度
- class类的内容是对应的封装了我们所创建的类的信息
- 对象 Object:
- 具体的某些或者某个事物,比如一本书、一个人,对象是指一个实体
类的形式:
-
关键字: class
-
格式: 访问修饰符(public/private/protected) class 类名{ }
- public 共有属性
- private 私有属性
- protected 保护属性
- 在定义类的时候,需要在class前面加入这些属性,不加入则默认为私有属性
-
命名规则:
- 项目名 通常首字母大写,其后的每个单词首字母大写 (驼峰命名法)
- 类名 首字母大写,其后的每个单词首字母都大写- 需要与所在的项目文件名一致
- 变量名 小写/缩写/小驼峰
- 方法名 小写/缩写/小驼峰
-
内容:
-
属性:用来描述这一类的共有信息或者特征,例如学生作为一类人的总称,那么他们就有自己共有的属性,比如姓名、年龄、用户名、密码、学校、年级、班级等
- 格式: 属性数据类型 属性变量名;
- 如int n; String name; String pwd; int age; ...
- 类属性的分类:
- 局部变量:在方法或者语句块中定义的变量称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁
- 成员变量:成员变量是定义在类中且方法体之外的变量。这种变量在创建对象的时候实例化(分配内存对这种变量的值进行保存)。成员变量可以杯特定类的语句和类中的方法访问
- 类变量:类变量也在类中,方法体之外,但是必须被声明为static类型,static变量是静态变量,可以直接通过类名.静态变量进行访问
- 格式: 属性数据类型 属性变量名;
-
方法/函数(method/function):
- 格式: 访问修饰符 方法修饰符 返回值类型 方法名(参数类型 参数变量名){方法体}
- 实例:public int abs(int a){ return a < 0 ? -a:a; }// 三元运算符
- 格式: 访问修饰符 方法修饰符 返回值类型 方法名(参数类型 参数变量名){方法体}
-
有关于 程序/代码的特性结构:
- 程序入口: public static void main(String[] args){ }
- 不是一个类所必要的
- 是一个程序所必要的
- 必须在程序的代码文件中的某一个类中
- 程序的开始
- 程序入口: public static void main(String[] args){ }
-
创建对象:
- 关键字: class
- 格式: 类名 对象变量名 = new 类名();
- 内容:对象变量名 调用类中的属性以及方法
- 调用的属性 都是这个对象自己的属性值
- 调用的方法 来自于类中的方法,其中使用的属性,也是这个对象的属性
package com.zsj0923; /** * @author zsj * @version 1.0 * @date 2022/09/21 */ public class Student { // 属性: 一般情况下不需要赋值 (类别共有的属性,属性值不一定相同) private String name; private String StudentNumber; private boolean sex; private int age; private String address; private String phoneNumber; private String pwd; // 单行 /* 多行 */ // 方法: /** * @return void 没有返回值 */ public void showUserInfo(){ System.out.println ("----- 个人中心 --------"); System.out.println ("姓名:" + name); System.out.println ("学号:" + StudentNumber); System.out.println("性别:" + sex); System.out.println ("年龄:" + age); System.out.println ("手机号:" + phoneNumber); System.out.println("住址:"+address); System.out.println("密码:"+pwd); } public boolean checkPassword(String pwd){ // 字符串 必须使用equals比较,黄色字体标记的属性可以直接用不等号或者等号进行比较 if(this.pwd.equals (pwd)){ System.out.println ("密码验证正确!!"); return true; } System.out.println ("密码验证错误!!"); return false; } public void login(String pwd_in){ if(this.checkPassword (pwd_in)){ System.out.println ("登录成功!!"); }else{ System.out.println ("登陆失败!!"); } } public void changePassword(String pwd_old,String pwd_new){ if(checkPassword (pwd_old)){ pwd=pwd_new; System.out.println ("密码修改成功!!"); }else{ System.out.println ("密码修改失败!!"); } } // 模拟对象的创建 public static void main(String[] args){ User user1= new User (); user1.name="山本"; user1.StudentNumber="8102200128"; user1.sex="1"; user1.age="19"; user1.phoneNumber="13988488848"; user1.pwd="020018"; user1.address="中南大学南校区"; user1.showUserInfo (); user1.login ("123456"); user1.changePassword ("020017","123456"); user1.changePassword ("020018","020017"); user1.login ("020017"); // 每个对象 都是独立存在的,都有一份自己的属性 User user2=new User (); user2.showUserInfo (); } }
运行结果:
----- 个人中心 --------
姓名:山本
学号:8102200128
性别:true
年龄:19
手机号:13988488848
住址:中南大学南校区
密码:020018
密码验证错误!!
登陆失败!!
密码验证错误!!
密码修改失败!!
密码验证正确!!
密码修改成功!!
密码验证正确!!
登录成功!!
----- 个人中心 --------
姓名:null
学号:null
性别:false
年龄:0
手机号:null
住址:null
密码:null
Process finished with exit code 0