Java基础自学,问题点(类和对象)

1、使用float类型的参数,赋值时末尾要加f;

float cpu = 1.2f;

2、局部变量与成员变量

  • 局部变量的作用域是在方法内部;
  • 成员变量的作用域是整个类;
  • 局部变量和成员变量为同一个时,优先局部变量(就近原则);
  • 成员变量可不定义初始值,局部变量必须定义初值;
public class Phone {

	//成员变量
	int var = 1;
	void  call() {
		//局部变量
		int localvar = 12;
		System.out.println("成员变量:"+var);
		System.out.println("局部变量:"+localvar);
	}
}

3、构造方法

  • 使用new+构造方法,创建一个新的对象; - 构造方法是定义在java类中的一个用来初始化对象的方法(与类同名且没有返回值);
  • 无参的构造方法
  • 带参构造方法的使用
  • 当没有指定构造方法时,系统会自动添加无参的构造方法
  • 当有指定构造方法,无论是有参、无参的构造方法,都不会自动添加无参的构造方法
  • 构造方法的重载:方法名相同,但参数不同的多个方法,调用时会根据不同的参数选择相应的方法;
  • 构造方法不但可以给对象的属性赋值,还可以保证给对象的属性赋一个合理的值
public class Phone {
	//无参构造方法
	public Phone() {
		System.out.println("这是无参的构造方法");
	}
	//有参的构造方法
	public Phone(float newcpu) {
		cpu=newcpu;
		System.out.println("这是有参的构造方法");
	}
}

4、静态变量

  • static
  • 可直接通过类名访问
  • 也可使用对象名访问
public class HelloWorld {
    
    // 定义静态变量,保存班级名称
    static String className = "JAVA开发一班";

	public static void main(String[] args) {
        
		//通过类名 访问静态变量,输出班级名称
		System.out.println(HelloWorld.className);
		//通过对象名访问
		HelloWorld hello = new HelloWorld();
		System.out.println(hello.className);
	}
}

5、静态方法

  • 静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员;
  • 如果希望在静态方法中调用非静态变量,可以通过创建类的对象,然后通过对象来访问非静态变量;
  • 在普通成员方法中,则可以直接访问同类的非静态变量和静态变量;
  • 静态方法中不能直接调用非静态方法,需要通过对象来访问非静态方法;
public class HelloWorld {
    
    // 定义静态变量score1
    static int score1 = 86;
    // 定义静态变量score2
    static int score2 = 92; 

    // 定义静态方法sum,计算成绩总分,并返回总分
	public static int sum() { 
      int sum = score1 + score2;
      return sum;
      
	}

	public static void main(String[] args) {
        
        // 调用静态方法sum并接收返回值
		int allScore = HelloWorld.sum();
        
		System.out.println("总分:" + allScore);
	}
}

6、静态初始化块

  • 静态初始化块只在类加载时执行,且只会执行一次,同时静态初始化块只能给静态变量赋值,不能初始化普通的成员变量。
  • 程序运行时静态初始化块最先被执行,然后执行普通初始化块,最后才执行构造方法。
public class HelloWorld {
    
    String name; // 声明变量name
	String sex; // 声明变量sex
	static int age;// 声明静态变量age
    
    // 构造方法
	public HelloWorld() { 
		System.out.println("通过构造方法初始化name");
		name = "tom";
	}
    
    // 初始化块
	{ 
		System.out.println("通过初始化块初始化sex");
		sex = "男";
	}
    
    // 静态初始化块
    static{ 
		System.out.println("通过静态初始化块初始化age");
		age = 20;
	}
    
	public void show() {
		System.out.println("姓名:" + name + ",性别:" + sex + ",年龄:" + age);
	}
    
	public static void main(String[] args) {
        
        // 创建对象
		HelloWorld hello = new HelloWorld();
		// 调用对象的show方法
        hello.show();
        
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值