1.面向对象
通过将数据和操作这些数据的方法封装在对象中来组织代码。
类和对象
- 类(Class): 类是一个模板,它定义了对象的属性(成员变量)和行为(方法)。类是创建对象的蓝图。
- 对象(Object): 对象是类的实例,是通过类定义的实际存在的实体。每个对象都有自己的属性和行为。
定义
定义类:
public class 类名{
1.成员变量(代表属性,一般为名词)
2.成员行为(代表行为,一般为动词)
...
}
public class Cup{
int heigh;
int volume;
public void open(){
}
public void getWater(){
}
}
如何得到类的对象
类名 对象名 = new 类名();
Cup p =new Cup;
一个JAVA文件中可以定义多个class类,且只能一个类是public修饰,而且public修饰的类名必须成为代码文件名。实际开发中建议一个文件定义一个class类
封装
指的是将对象的属性和行为(方法)封装在一个类中,并通过访问控制来隐藏对象的内部实现细节。封装有助于保护对象的状态,防止外部代码直接访问和修改对象的内部数据,从而提高代码的安全性和可维护性。
原则:对象代表什么,就得封装对应的数据,并提供数据对应的行为。
private关键字
1.是一个权限修饰符
2.可以修饰成员
3.被private修饰的成员只能在本类中才能访问
1.提供setXxx方法,用于给成员变量赋值,方法用public修饰
2.提供getXxx()方法,用于获取成员变量的值,方法用public修饰
this关键字
就近原则:谁近用谁
private int age;
public void method(){
int age = 10;
System.out.println(age);//结果为10
}
如果想要使用成员位置的age,则使用this关键字
private int age;
public void method(){
int age = 10;
System.out.println(this.age);//结果为成员位置的age
}
this作用:区分局部变量和成员变量
本质:代表方法调用者的地址值. //推荐详细解释看以下代码注释部分
public class student(){
private name;
private age;
public void setname(String name){
this.name=name//setname方法将被student对象所调用,用于给成员变量赋值。
//在主函数中创建了student对象s,s调用了方法setname。
//因此,this地址值为s地址值。因此this.name即为s.name
}
}
public class studentTest(){
public static void main(String[] args){
student s =new student();
s.setname("张三");
}
}
构造方法
作用:在创建对象时给成员变量进行赋值的。
种类:1.无参数构造方法:初始化对象时,成员变量的数据均采用默认值。
2.有参数构造方法:在初始化对象时,同时可以为对象进行赋值。
格式:
public class student(){
private name;
private age;
public student(){//无参
}
public student(String name,int age){//带参
}
}
java内存分配
堆内存:new出来东西在此开辟空间并产生地址
栈内存:方法运行时进入的内存,变量也是在这里
方法区:字节码文件加载时进入的内存