Java类型模型
- 类:类是一个模板,它描述一类对象的行为和状态
- 对象:对象是类的一个实例,有具体的状态
- 方法:类中定义的该类的实例对象所具有的行为
- 静态方法:隶属于类本身的方法
Java里的常量和变量都可以对应于一个对象,这个对象的行为和具有的属性是由类来定义的。
Java程序的基本结构就是一系列类的定义,类之间的关系和具体类的对象之间的互相操作。
Java类
- 类是一个模板,它描述一类对象的行为和状态
- 语义上表达的是一类实体(对象)的抽象
- 在Java中的惯例是一个文件中存放一个public类
Java方法和成员变量
- 方法:类中定义的该类的实例对象所具有的行为
- 静态方法:隶属于类本身的方法
- <返回类型> 方法名(<参数类型> 参数名,...) {代码; return <返回值>;}
- 一个方法由 "方法名 + 参数类型" 确定
- 相同方法名,不同的参数类型,是不同的方法(重载override)
- 成员变量即对象或类中的变量,其作用域在类中,或对象中
- 可以用修饰符控制方法和成员变量的作用域
修饰符
1. 修饰符用于控制变量,类的作用域和一些访问限制
2. 访问权限修饰符:public,protected,private,default (即不设置)
public protected default private
同一个类 √ √ √ √
同一个包 √ √ √ ×
子父类 √ √ × ×
不同包 √ × × ×
1. static: 把方法或者成员变量设置为类共享
2. 具有static修饰的方法和变量的类,我们称之为"静态类"
3. 调用方法: <类名> <方法名或成员变量名>
4. 例如: Main.main(null)
final
1. final <类> ; -> 防止类被继承
2. final <变量> ; -> 防止变量被修改引用到另外一个对象,可称为"常量"
思考:常量指向的对象能否被修改
3. final <方法>; -> 防止方法被重载(override)
4. final 成员变量必须直接在声明的时候初始化,或者在构造方法里面初始化!
包和层次结构
"包":用来表示具有层级结构的命名空间
"package hello"层级结构
包 -> 类(对象) -> 方法 -> 代码块
// 包名
package hello;
//类名 学生
public class Student {
//成员变量 用户名
private String userName;
//成员变量 手机号
private String phone;
//成员变量 密码
private String password;
//对象方法
public void sayHello(){
System.out.println("hello,world!");
}
//类方法
public static void sayClass(){
System.out.println("I'm Student");
}
//对象方法 获取用户名
public String getUserName() {
return userName;
}
//对象方法 设置用户名
public void setUserName(String userName) {
this.userName = userName;
}
//对象方法 获取手机号
public String getPhone() {
return phone;
}
//对象方法 设置手机号
public void setPhone(String phone) {
this.phone = phone;
}
//对象方法 获取密码
public String getPassword() {
return password;
}
//对象方法 设置密码
public void setPassword(String password) {
this.password = password;
}
}
package hello;
public class Application {
public static void main(String[] args) {
//新建一个对象
Student student = new Student();
//设置用户名
student.setUserName("hello");
//设置密码
student.setPassword("world");
//设置手机号
student.setPhone("1xxxx23443");
//获取并输出用户名
System.out.println(student.getUserName());
//获取并输出密码
System.out.println(student.getPassword());
//获取并输出手机号
System.out.println(student.getPhone());
}
}