天天看点

Java学习笔记_3

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;
}
}