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

你可能感兴趣的:(java)