一, 封装
1.被public修饰的类在文件中只能有一个,超过一个就会报错:
2.四种访问修饰符:
3.用来封装的private
①由2可以看出被private修饰的变量方法只能在本类中使用,那如何使用呢
如下:
class Student{
private String name;
private int sno;
private String subject;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getSno() {
return sno;
}
public void setSno(int sno) {
this.sno = sno;
}
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
}
注:get和set方法是用来通过建立对象来设置和调用被private修饰的变量的。里面的this关键字后面讲,先知道由它就行。
②如何调用呢?如下
public class TextStudent {
public static void main(String[] args) {
Student student = new Student();
student.setName("王振亚");
student.setSno(2);
student.setSubject("语文");
System.out.println(student.getName()+student.getSno()+student.getSubject());
//王振亚2语文
}
}
4.构造方法
① 作用:初始化对象,每次实例化对象都会调用构造方法
②格式:与类同名且没有返回值类型的方法且没有返回值
③构造方法的使用及调用
class Car{
public Car(){
System.out.println("欢迎进入汽车之家");
}
public class CarText {
public static void main(String[] args) {
Car car = new Car();
}}
5,方法的重载
①概念:在同一个类中存在多个方法,方法名相同但参数列表不同的现象
②this关键字:this代表是本类,可以理解成Cat cat = new Cat();
如下的this.sum=20;
class Cat{ int sum = 20; int s=30; public void eat(){ int sum=10; System.out.println(sum); System.out.println(s); System.out.println(this.sum); } }
③使用及调用
对于构造方法的重载:
class Car{
public Car(){
System.out.println("欢迎进入汽车之家");
}
public Car(String color){
this.color=color;
}}
public class CarText {
public static void main(String[] args) {
Car car = new Car();
Car car2 = new Car("红");}}
对于功能方法的重载:
class Car{
public void start(){
System.out.println("我的小车启动了");
}
public void start(String color){
System.out.println("我的小车启动了");
}
public class CarText {
public static void main(String[] args) {
Car car = new Car();
car.start();}}
6.代码块
①构造代码块与局部代码块:
执行顺序:每次在调用构造方法时触发,而且要优先于构造方法执行
public class TeacherTest { public static void main(String[] args) { Teacher teacher1 = new Teacher();//构造代码块会先于构造方法被调用 } } class Teacher{ String name; String age; public Teacher(){ System.out.println("早上好"); } { System.out.println("我是构造代码块"); } public void cals(){ System.out.println("我正在授课"); { System.out.println("我是局部代码块"); int i=10; System.out.println(i); } //System.out.println(i);、、会报错,因为局部代码块之能在局部使用 } }
②代码块的顺序
构造代码块-->构造方法-->对象创建成功-->局部代码块
7,this关键字的应用
//this():调用苯类的无参构造器 //this相关的语句必须写在第一行 //this(参数):调用本类的行参构造器 class Dog{ String name; int age; public Dog(){ this(666); } public Dog(int age){ this.age=age; } }