构造方法的注意事项
构造方法的创建:
如果没有定义构造方法,系统将给出一个默认的无参数构造方法
如果定义了构造方法,系统将不再提供默认的构造方法
推荐的使用方式
无论是否使用,都手动书写无参数构造方法,和带参数的构造方法。
同时存在多个构造方法时,由于构造方法名都是同一个类名,会重名,此时就构成了构造方法的重载。
构造方法
//无参数的构造方法
public Student(){
System.out.println("Student无参构造方法执行了";)
}
//带参数的构造方法
public Student(String name,int age){
this.name = name;
this.age = age;
}
标准类的代码编写和使用
成员变量
使用private修饰
构造方法
提供一个无参构造方法
提供一个多个参数的构造方法
成员方法:
提供每一个成员变量对应的setXxx和getXxx方法
提供一个展示对象成员变量信息的show方法
创建对象初始化
无参构造方法创建对象后使用setXxx方法初始化
带参构造方法创建对象同时完成初始化赋值
package com.wedo.oop.demo;
public class Person {
//姓名
private String name;
//年龄
public int age;
//性别
public char gender;
//无参数构造方法
public Person(){
}
public Person(String name,int age,char gender){
this.name = name;
this.age = age;
this.gender = gender;
}
//name get
public String getName(){
return name;
}
//name set
public void setName(String name){
this.name = name;
}
//age
public int getAge(){
return age;
}
public void setAge(int age){
this.age = age;
}
//gender
public char getGender(){
return gender;
}
public void setGender(char gender){
this.gender = gender;
}
public void show(){
System.out.println("name="+name+",age="+age+",gender="+gender);
}
}
package com.wedo.oop.demo;
public class personTest {
public static void main(String[] args) {
Person p1 = new Person();
p1.setName("唐僧");
p1.setAge(20);
p1.setGender('男');
p1.show();
//带参构造方法创建对象同时完成初始化赋值
Person p2 = new Person("女儿国王",18,'女');
p2.show();
}
}
封装
private是一个权限修饰符,可以用来修饰成员(成员变量,成员方法)
特点
被private修饰的成员,只能在本类中进行访问,这样可以保护成员不被别的类访问,针对private修饰的成员变量,如果需要被其他类使用,需要提供相应的操作
package com.wedo.privateDemo;
public class Student {
String name;
private int age;
public int getAge() {
return age;
}
public void setAge(int a) {
if(a<0||a>120){
System.out.println("年龄不合法");
}else{
age = a;
}
}
public void info(){
System.out.println("name="+name+",age="+age);
}
}
package com.wedo.privateDemo;
public class StudentTest {
public static void main(String[] args) {
//创建student对象
Student stu = new Student();
stu.name ="猪八戒";
//被private修饰的成员只能在本类中访问
//stu.age = 200;
stu.setAge(-200);
System.out.println(stu.getAge());
stu.info();
}
}
封装的原则
将类的某些信息隐藏在类内部,不允许外界程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。
封装的好处:
通过方法来控制成员变量的操作,提高了代码的安全性。
把代码用方法进行封装,提高了代码的复用性
构造方法的格式和执行时机
格式注意:
修饰符一般用public
方法名和类名相同,大小写也要一致,
没有返回值类型,连void都没有
没有具体返回值(不能由return带回结果数据)
执行时机:
创建对象的时候调用,每创建一次对象,就会执行一次构造方法
不能手动调用构造方法,通过new调用。