1、构造方法:
1-1 与类同名且没有返回值
构造方法的语句格式
public 构造方法名(){
//初始化代码
}
- 无参构造系统自动添加
-
若添加了带参构造,则只能调用带参构造的方法
1-2 调用重载的构造方法:↓
public Cat(){
System.out.println("我是无参构造");
}
public Cat(String name){
this();//此为调用构造方法,必须放在方法体内第一行
System.out.println("我是单参构造");
}
2、this关键字
表示当前对象的默认引用;
写一个与类名同名的方法(非构造方法)不报错
构造方法的调用只能通过对象实例化
3、封装
-
1、只能通过规定的方法访问数据
2、隐藏类的实例细节,方便修改和实现
public String getName() {
return "这是一只名叫"+this.name+"的猫";
}
public void setName(String name) {
this.name = name;
}
-
可见性:private
创建public属性的getter和setter方法
在getter和setter方法中加入属性控制语句
只有getter方法:只读属性
只有getter方法:只写属性
-
在构造方法中对属性赋值也可以用setter方法:
this.setter(“奥特曼”);
4、创建包+导入包
-
包名的命名:域名倒序+模块+功能(域名全部小写)
必须放在Java源文件中的第一行
建议每个包内存储信息功能单一
- e.g.
import com.imooc.animal.*;//加载com.imooc.animal下所有类
import com.imooc.animal.Cat;
//加载com.imooc.animal下的Cat类
-
常用系统包:tips
1、java.lang 包含语言基础的类,该包系统加载时默认导入
e.g. System/String/Math
2、 java.util 常用工具:e.g. Scanner/Random
3、java.io File/InputStream
5、static关键字
- 静态属性、类属性
public static int price;//售价
- 不存在静态类
public static class Cat(){ }
- 不存在方法中的静态局部变量
public Cat(){
//static int temp = 14;
System.out.println("我是宠物猫~~");
}
- static + 方法–>类方法、静态方法
- 在成员方法中,可以直接访问类中静态成员
- 静态方法中不能直接访问同一个类中的非静态成员,只能直接调用静态成员
- 只能通过对象实例化后,对象.成员方法的方式访问非静态成员
- 静态方法中不能使用this关键字
public static void eat() {
System.out.println("小猫吃鱼!");
Cat temp = new Cat();
temp.age = 2;
}
-
代码块:
(1)普通代码块:顺序执行,先出现,先执行
(2)构造代码块:创建对象时调用,优先于构造方法执行
(3)静态代码块:类加载时调用,优先于构造代码块执行
class Cat(){
{ }//构造代码块,每次实例化时都出现一次
public void eat(){
{}//普通代码块 顺序执行
static{
System.out.println("我是静态代码块");
}//静态代码块,无论多少次实例化操作,都只出现一次
}
}
- 仅希望执行一次的代码可以放在静态代码块中
- 普通代码块中局部变量的使用:
同一个方法体中两个代码块中定义的同名局部变量不相通; ↓ ↓ ↓ ↓ ↓
public void run(){
{
int temp = 10;
}
int temp = 11;//管制下面的代码块 ,所以下面代码块中的temp会报错,上面不会
{
int temp = 15;
}
}