JAVA中的重载构造和封装

一、快捷键:

1. 提取变量:alt + shift + L

2. 快速复制行:alt + ctrl + 向上或向下箭头

3. 删除行:ctrl + d

4. 生成代码:alt + shift + s

二、复习:

1.  类:对同一个事物共同属性和行为的抽象

2. 对象:根据类创建出来的具体的实物

3. 类的定义规则:

public/默认  class  类名{

属性

方法

}

4. 对象的定义:

类名   对象名;

5. 在定义对象的同时给对象分配内存空间

类名  对象名  =   new   类名();

备注:new 调用的是构造方法

6. 方法的定义:

访问控制修饰符    返回值类型   方法名(参数列表){

        //方法体

}

三、 

1. 方法重载:

在同一各类中提供多个同名不同参的方法。

重载要求:方法名称相同,但参数的类型不同 or 参数的个数不同 or 参数的顺序不同

示例:

 1 package 第二天;
 2 
 3 public class 第二天 {
 4     public void fun1() {
 5     }
 6     public void fun1(int a) {
 7     }
 8     public void fun1(String c) {
 9     }
10     public void fun1(int c, int d) {
11     }
12     public void fun1(String c, int d) {
13     }
14     public void fun1(int d,String c) {
15     }
16 }

注:对于重载。系统是根据实参来确定最终调用的哪个方法的。

2. 构造方法:

特殊的用法:用来构造 (创建) 对象,即用来在内存中开辟空间。

构造方法定义:

访问控制修饰符    方法名(参数类表){

        //方法体

}

默认情况下,系统会给每一个类都提供一个默认的构造方法:

public 类名(){

}

构造方法只能被new关键字调用。

构造方法是特殊的方法,所以构造方法也可以重载。

构造方法重载的主要作用:是在开辟空间的同时给对象中的成员变量赋值。

 

 1 package 第五天;
 2 
 3 public class Teacher {
 4     int id;
 5     String name;
 6     String major;
 7     
 8     public Teacher()  {
 9         System.out.println("默认构造方法");
10     }
11     
12     public Teacher(int id) {
13         System.out.println("Teacher(int id)");
14     }
15     
16     public Teacher(int id,String name) {
17         this.id = id;
18         this.name = name;
19         System.out.println("Teacher(int id,String name)");
20     }
21     
22     public void shangke() {
23         System.out.println("shangke");
24     }
25     
26     public void beike() {
27         System.out.println("beike");
28     }
29 }

注:this指的是new出来的空间。

四、封装:

1. 访问控制修饰符

a. private: 私有的,只能在当前类中使用,其他任何类都不能使用

b. public:公用的,谁(任何地方的任何类)都可以使用

c. 示例:

 1 package 第五天;
 2 
 3 public class person {
 4     private int age;
 5     private String gender;
 6     private float height;
 7     
 8     public void setAge(int age) {
 9         if(age <0 || age > 125) {
10             System.out.println("age input error");
11             return;
12         }
13         this.age = age;
14     }
15     
16     public int getAge() {
17         return this.age;
18     }
19 }
posted @ 2019-08-02 09:10  盛开着永不凋零  阅读(333)  评论(0编辑  收藏  举报