面向对象目录
1 类与对象
2 封装
2.1 构造方法
2.2 类的结构
3 继承
3.1 类的设计与扩展
4 接口
4.1 事件监听器
5 抽象类
6 泛型
7 枚举
1 类与对象
1.1类与对象
类(class)是对一类事物的抽象信息描述。这些事物具有相同的或者相似的属性、特征、行为、功能。
对象(object)是具体的事物(实体)。
类与对象的关系如下表所示。
类(class) | 对象(object) |
人类 | 具体的某个人 |
用户类 | 某个具体的用户 |
…… | …… |
1.2 类的定义
1)关键字:class
2)格式:class 类名{ }
3)类名命名规则:要求使用驼峰命名法。例如:JavaFirstClass
4)内容:可以写的东西很多:主函数、静态资源等等,与面向对象有关的:属性和方法。
①属性。描述一类事物共有的、名词或形容词的数据,可以用一个变量表达。
格式:属性数据类型 属性名;
例如:String name; String pwd; int age;
由于尚未实例化,因此不需要对这些变量赋值。
②方法。描述一类事物共有的行为功能。
格式:返回值类型 方法名(参数类型 参数名){//方法体 }
e.g.登录注册程序。
1、定义用户类User。
属性:用户名、密码、在线状态……
方法:查看信息、登录、检查密码、修改密码……
2、创建实体user1、user2。只对user1做初始化,并调用方法。
public class User{
//属性
//需要直接赋值?不需要
String userName;//用户名
String password;//密码
boolean onlineState;//登录状态
//方法
void showInfo(){//显示信息
System.out.println("------User Information------");
System.out.println("username:"+userName);
System.out.println("password:"+password);
System.out.println("online state:"+(onlineState?"ONLINE":"OFFLINE"));
}
boolean checkPassword(String pwdIn){//检查密码
//哪个对象调用方法,方法中的属性就是哪个对象
//除了关键字数据类型,都不可以使用==比较
if (pwdIn.equals(password)){
System.out.println("RIGHT password");
return true;
}
else{
System.out.println("WRONG password");
return false;
}
}
void logIn(String pwdIn){//登录
if (check_password(pwdIn)){
System.out.println("successful");
onlineState = true;
}
else {
onlineState = false;
System.out.println("unsuccessful");
}
}
void changePassword(String old_pwd,String new_pwd){//修改密码
if (checkPassword(old_pwd)){
System.out.println("successful change");
password = new_pwd;
}
else {System.out.println("unsuccessful change");}
}
//程序入口
public static void main(String[] args) {
//实例化
//转为对象
//类:模板
//对象:根据模板创建的实体
//格式
//类名 对象名 = new 类名();
User user1 = new User();
user1.userName = "user1";
user1.password = "0000";
//登录状态online_state默认为false
// 调用方法
user1.showInfo();
System.out.println(user1.checkPassword("00000"));
System.out.println(user1.checkPassword("0000"));
user1.logIn("00000");
user1.logIn("0000");
user1.changePassword("00000","0000");
user1.changePassword("0000","00000");
user1.showInfo();
// 每个对象都是独立存在的 - 都有一份自己的内存数据
User user2 = new User();
user2.showInfo();
}
}
运行结果
------User Information------
username:user1
password:0000
online state:OFFLINE
WRONG password
false
RIGHT password
true
WRONG password
unsuccessful
RIGHT password
successful
WRONG password
unsuccessful change
RIGHT password
successful change
------User Information------
username:user1
password:00000
online state:ONLINE
------User Information------
username:null
password:null
online state:OFFLINE