@[toc]
目录
1.this引用的特性
this有三种用法:
(1)this.成员变量(普通的成员变量不能是静态的成员变量)
(2)this.成员方法(普通的成员方法不能是静态的成员方法)
(3)this() 调用其他的构造方法
2.对象的构造
2.1概念
概念:名字必须与类名相同,在创建对象时,由编译器自动调用,并且在整个对象的生命周期内只调用一次。
public class MyDate { public int year; public int month; public int day; public MyDate(){ this(2022,1,2); System.out.println("不带参数的构造方法"); } public MyDate(int year,int month,int day){ this.year=year; this.month=month; this.day=day; System.out.println("带有三个参数的构造方法"); } public void setDay(int year,int month,int day) { this.year=year; this.month=month; this.day=day; } public void printDay(){ System.out.println(year+"-"+month+"-"+day); } public static void main(String[] args) { MyDate myDate=new MyDate(); } public static void main2(String[] args) { MyDate myDate=new MyDate(2022,5,24); myDate.printDay(); } public static void main1(String[] args) { MyDate myDate=new MyDate(); myDate.setDay(2022,10,19); myDate.printDay(); MyDate myDate2=new MyDate(); myDate2.setDay(2022,10,20); myDate2.printDay(); } }
2.2特性
(1)名字必须与类名相同
(2)没有返回值类型
(3)创建方法时由编译器自动调用
(4)构造方法可以重载
(this(...)必须是构造方法中的第一条语句)
3.封装
3.1概念
面相对象程序三大特性:封装、继承、多态。
封装:将数据和操作数据的方法进行有机结合,隐藏对象的属性和实现细节,仅对外公开接口来和对象进行交互。
3.2访问权限
访问权限用来控制方法或字段能否直接在类外使用。
Java中提供了四种访问限定符:
范围 | private | default | protected | public |
同一包中的同一类 | √ | √ | √ | √ |
同一包中的不同类 | √ | √ | √ | |
不同包中的子类 | √ | √ | ||
不同包中的同非子类 | √ |
3.3封装扩展之包
3.3.1概念
为了更好的管理类,把多个类收集在一起组成一组,称为软件包。
3.3.2导入包的类
package domed;//package声明这个包 //import java.util.Arrays;//导包(import导入这个包) import java.util.*; import java.sql.*; public class TestDome { public static void main2(String[] args) { java.sql.Date date=new java.sql.Date(247); } public static void main1(String[] args) { int[] array={1,2,3,4}; Arrays.sort(array); } }
3.3.3自定义包
基本规则:
(1)在文件的最上方加上一个package语句指定该代码在哪个包中
(2)包名需尽量指定成唯一的名字
(3)包名要和代码路径相匹配
操作步骤:
(1)在IDEA中先新建一个包:右键src->新建->包
(2)在弹出的对话框中输入包名
(3)在包中创建类,右键包名->新建->类,然后输入类名即可
(4)此时可以看到我们的磁盘上的目录结构已经被IDEA自动创建出来了
(5)同时可以看到,在新建的Test.java文件的最上方,就出现了一个package语句