一、类和对象
1.定义:
类:是共同特征的描述(设计图);
对象:是真实存在的具体实例。
2.创建对象:
首先创建一个类
public class 类名{
1.成员变量(代表属性,名次)
2.成员方法(代表行为,动词)
}
类名 对象名 = new 类名();
3.使用对象:
对象.成员变量;
对象.成员方法();
public class Phone {
//属性
String brand;
double price;
//行为
public void call(){
System.out.println("手机在打电话");
}
public void playGame(){
System.out.println("手机在玩游戏");
}
}
public class PhoneTest {
public static void main(String[] args) {
//创建手机的对象
Phone p = new Phone();
//赋值
p.brand = "小米";
p.price = 1999.98;
//获取手机对象的值
System.out.println(p.brand);
System.out.println(p.price);
//调用手机中的方法
p.call();
p.playGame();
}
}
定义类的补充事项
- 用来描述一类事物的类,专业叫做:Javabean类。在Javabean类中,不写main方法
- 编写main方法的类,叫做测试类。可以在测试类中创建Javabean类的对象并进行赋值调用
- 类名首字母建议大写,需要见名知意,驼峰模式
- 一个Java文件中可以定义多个class类,且只能一个类是public修饰,而且public修饰的类名必须成为代码文件名,实际开发中建议只定义一个class类
- 成员变量的完整定义格式是:修饰符 数据类型 变量名称 = 初始化值;一般初始化值默认
二、封装
封装是面向对象编程(OOP)的三大特性之一(其他为继承和多态),其核心思想是将数据(属性)和对数据的操作(方法)捆绑在一起,形成一个独立的单元(即类)。通过封装,可以隐藏对象的内部实现细节,仅对外暴露必要的接口,从而提高代码的安全性、可维护性和复用性。
封装的主要作用:
- 数据隐藏:通过访问修饰符(如 private、protected)限制对类内部数据的直接访问。
- 接口暴露:通过公共方法(如 getter 和 setter)控制对数据的修改和访问。
- 降低耦合:外部代码无需关心内部实现,只需调用公开的接口。
private关键字:
1.private关键字是一个权限修饰符
2.可以修饰成员(成员变量和成员方法)
3.被private修饰的成员只能在本类中才能访问
4.针对private修饰的成员变量,如果需要被其他类使用,提供相应操作:
- 提供"setXxx(参数)"方法,用于给成员变量赋值,方法用public修饰
- 提供"getXxx()"方法,用于获取成员变量的值,方法用public修饰
示例:
public class Girl {
private int age;
private String gender;
//针对于每一个私有化的成员变量,都要提供get和set方法
//set方法:给成员变量赋值
//get方法:对外提供成员变量的值
//age
//setAge:给成员变量age进行赋值的
//getAge:对外提供成员变量age的值
public void setAge(int a){
if(a>=18&&a<=50){
age = a;
}else {
System.out.println("非法参数");
}
}
public int getAge(){
return age;
}
//gender
public void setGender(String g){
gender = g;
}
public String getGender(){
return gender;
}
}
public class GirlTest {
public static void main(String[] args) {
Girl bk = new Girl();
bk.setAge(18);
bk.setGender("女");
System.out.println(bk.getAge());//18
System.out.println(bk.getGender());//女
}
}
this关键字
this关键字用于引用当前对象的实例,可以区分成员变量与局部变量
在方法中,若形参与成员变量同名,this可明确指定访问当前对象的成员变量:
public class Girl {
//属性
private int age;
public void method(){
int age =10;
System.out.println(age);//谁离我近,我就用谁
System.out.println(this.age);
}
}
public class GirlTest {
public static void main(String[] args) {
Girl bk = new Girl();
bk.method();
}
}
//10
//0
三、构造方法
1.作用:创建对象的时候,由虚拟机自动调用,给成员变量进行初始化
2.种类:
无参数构造方法:初始化对象时,成员变量的数据均采用默认值。
有参数构造方法:在初始化对象的时候,同时可以为对象进行赋值。
3.注意事项:
- 任何类定义出来,默认自带无参数构造器。
- 一旦定义有参数构造器,无参数构造器就没有了,此时就需要自己写无参数构造器
- 建议在任何时候都手动写上空参和带全部参数的构造方法
4.构造方法的格式
public class Student{
修饰符 类名(参数){
方法体;
}
}
特点:
方法名与类名相同,大小写也要一致
没有返回值类型,连void都没有 没有具体的返回值(不能由return带回结果数据)
没创建一次对象,就会调用一次构造方法
public class Student {
private String name;
private int age;
//如果我们自己没有写任何的构造方法
//那么虚拟机会给我们加一个空参构造方法
public Student(){
System.out.println("看看我执行了吗");
}
public Student(String name,int age){
this.name = name;
this.age = age;
}
}
public class StudentTest {
public static void main(String[] args) {
//创建对象
//调用的空参构造
//Student s = new Student();
Student s = new Student("zhangsan",23);
System.out.println(s.getName());//zhangsan
System.out.println(s.getAge());//23
}
}
四、标准的JavaBean类
1.类名需要见名知意
2.成员变量使用private修饰
3.提供至少两个构造方法(无参、全参)
4.提供每个成员变量对应的setXxx()/getXxx()以及其他行为
public class User {
//属性
private String username;
private String password;
private String email;
private String gender;
private int age;
public User(String username, String password, String email, String gender, int age) {
this.username = username;
this.password = password;
this.email = email;
this.gender = gender;
this.age = age;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
1688

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



