1、封装
a:隐藏实现细节,提供公共的访问方式。
b:好处,隐藏实现细节,提供公共的访问方式。提高代码的复用性。提高代码的安全性。
c:设计原则,把不想让外界知道的实现细节给隐藏起来,提供公共的访问方式。
d:private是封装的一种体现。封装包括,类,方法,private修饰成员变量。
2、private关键字
私有的意义,可以修饰成员和成员方法。特点,被private修饰后的成员只能在本类中访问。
this关键字
a:代表当前的引用对象,哪个对象调用方法,该方法内部的this就是代表哪个对象。
b:this的应用场景,解决了局部变量隐藏成员变量的问题。
3、构造方法
a:作用,用于对象的数据进行初始化。
b:格式,方法名和类名相同。没有返回值类型,连void都没有。没有返回值。
c:如果我们没有写构造方法,系统会自动给一个无参构造方法,如果我们给出了构造方法,系统将不会给。
例如:
//学生类构造方法
class Student {
private String name;
private int age;
//无参构造方法
public Student() {}
//有参构造方法
//用构造方法给成员变量赋值
public Student(String name,int age) {
this.name=name;
this.age=age;
}
//用set方法给成员变量赋值(常用)
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 void show() {
System.out.println(name+"---"+age);
}
}
public class Main {
public static void main(String[] args) {
//方式1用无参构造方法+set
Student s1=new Student();
s1.setName("贺志营");
s1.setAge(20);
System.out.println(s1.getName()+"---"+s1.getAge());//常用
s1.show();
System.out.println("-----------");
//方式2
Student s2=new Student("贺志营",20);
System.out.println(s2.getName()+"---"+s2.getAge());//常用
s2.show();
}
}
4、static关键字
a:静态的意思,可以修饰成员变量和成员方法。在静态方法区没有this对象,静态只能访问静态。
b:静态的特点,随着类的加载而加载。优先于对象的存在。被类的所有对象共享。
举例:
class Person{
String name;
int age;
static String country;
public Person() {}
public Person(String name,int age) {
this.name=name;
this.age=age;
}
public Person(String name,int age,String country) {
this.name=name;
this.age=age;
this.country=country;
}
public void show() {
System.out.println(name+"---"+age+"---"+country);
}
}
public class Main {
public static void main(String[] args) {
Person p1,p2,p3;
p1=new Person("贺志营",20,"中国");
p2=new Person("贺贺",19);
p3=new Person("阿营",18);
p1.show();
p2.show();
p3.show();
}
}
c:可以通过类调用,既可以通过对象名调用,也可以通过类名调用,建议通过类名调用。
d:静态变量和成员变量的区别
静态变量属于类,类变量。成员变量,属于对象,对象变量,实例变量。
生命周期不同,静态变量是随着类的加载而加载,随着类的消失而消失。成员变量是随着对象的创建而存在,随着对象的消失而消失。
调用不同,可以通过对象名调用也可以通过类名调用。成员变量只能通过对象名调用。
举例:
class Student{
private Student(){}//创建私有方法,这样就只能用类名访问了
public static void eat() {
System.out.println("吃");
}
}
public class Main {
public static void main(String[] args) {
//Student s=new Student();这个会报错
Student.eat();
}
}
e:main方法是静态的,public权限最大,static不用创建对象就能调用,void返回值给jvm没有意义,main就是一个常见的名称。String[] agrs可以接收数据,提供程序的灵活性,没用过。