面向对象
类与对象
类:是一组相关的属性和集合的总称。
对象:就是该类对象的具体体现。
事物具有属性与方法。
类中有成员变量和成员方法。
public class Student{
//成员变量
String name;
int age;
//成员方法
public void study(){
System.out,println("好好学习,天天向上");
}
类的使用:使用一个类,就是使用该类的成员(成员方法,成员变量),要使用一个类的成员,就要先拥有该类的对象,即需要创建对象。
创建对象格式:
类名 对象名 = 类名();
对象如何访问?
成员变量:
对象名.成员变量
成员方法:
对象名.成员方法(…)
成员变量与局部变量的区别:
A:在类中的位置的不同
成员变量:类中,方法外
局部变量:在方法中或方法声明上
B:在内存中的位置不同
成员变量:在堆内存
局部变量:在栈内存
C:生命周期不同:
成员变量:随着对象的创建存在,随着对象的消失而消失
局部变量:随着方法的调用存在,随着方法的调用消失而消失
D:初始值不同:
成员变量:有初始值
局部变量:没有默认值,必须先定义,赋值,再使用
private关键字的使用
private:是一个修饰符,可以修饰成员变量和成员方法,被private修饰的成员只能在本类中使用。针对被private修饰的变量,我们会相应给出getXxx()和setXxx用于获取和设置成员变量的值,方法用public修饰。
public class Student {
private String name;
private int age;
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public void setAge(int age){
if(a<0 || a>200){
System.out.println("你的年龄有错");
}else{
this.age = age;
}
}
public int getAge(){
return age;
}
}
封装
封装原则:
将不需要对外提供的内容都隐藏起来。
把属性隐藏,提供公共方法对其访问。
好处:
通过方法控制成员变量的操作,提高了代码的安全性。
把代码用方法进行封装,提高了代码的复用性。
this:代表所在类的对象引用,方法被哪个对象调用,this代表谁。
解决成员变量被隐藏的问题。
构造方法
格式:
方法名与类名一致
没有返回值,与返回值类型。没有void
如何调用构造方法:
格式:类名 对象名 = new 构造方法名(…)
如果没有写构造方法,系统将给出一个没有参数的构造方法。
可以通过构造方法给成员方法赋值。
如果写了构造方法,系统将不会提供无参数的构造方法。
可以重载构造方法。
标准类的形式
public class Student{
//成员变量
private String name;
private int age;
//构造方法
public Student(){}
public Student(String name, int age){
this.name = name;
this.age = age;
}
//成员方法
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public void setAge(int age){
this.age = age;
}
public int getAge(){
return age;
}
}
//测试(无参数与有参数)
public class StudentTest{
public static void main(String[] args){
//无参构造方法+setXxx()
Student s = new Student();
s.setName("xxx");
s.setAge(20);
System.out.println(s.getName()+"---"+s.getAge());
//带参数构造方法
Student s2 = new Student("xxx", 20);
System.out.println(s.getName()+"---"+s.getAge());
}
}