JavaSE | 02-面向对象

面向对象

类和对象

  • 类(设计图):是对象共同特征的描述;
  • 对象:是真实存在的具体东西
    在Java中,必须先设计类,才能获得对象
public class 类名{ 
	1.成员变量
	2.成员方法
	3.构造器
	4.代码块
	5.内部类
}
public class Phone{
	//属性(成员变量)
	String brand;
	double price;
	
	//行为(方法)
	public void call(){
	}
	public void playGame(){
	}
}

定义类的注意事项

  • 类名首字母建议大写,需要见名知意
  • 一个Java文件中可以定义多个class类,且只能一个类是public修饰,而且public修饰的类名必须为代码文件名(实际开发中还是建议一个文件定义一个class类)
  • 成员变量完整定义格式是:修饰符 数据类型 变量名称 = 初始化值;一般无需指定初始化值,存在默认值

封装

告诉我们如何正确设计对象的属性和方法

  • 对象代表什么,就得封装对应的数据,并提供对应的行为

private关键字

  • 是一个权限修饰符
  • 可以修饰成员(成员变量和成员方法)
  • 被private修饰的成员只能在本类中才能访问 以下代码并不安全
public class GirlFriend{
	String name; //会出现负数等不合理的值
	int age;
	String gneder;
}

修改为以下代码

public class GirlFriend{
	//将类中的变量转换为私有
	private int age;
	// set 赋值
	public void setAge(int a){
		if(a >= 18 && a <= 50){
			age = a;
		}else{
			System.out.println("非法数据");
		}
	}
	// get 获取
	public int getAge(){
		return age;
	}
}

就近原则和this关键字

成员变量和局部变量

public class GrilFriend{
	private int age;	//成员变量
	public void method(){
		int age = 10;	//局部变量
		System.out.println(age);//输出 10
	}
}

修改为this后可以调用成员变量

public class GrilFriend{
	private int age;	//成员变量
	public void method(){
		int age = 10;	//局部变量
		System.out.println(this.age);
	}
}

构造方法

构造方法也叫做构造器,构造函数 作用:在创建对象的时候给成员变量进行初始化(赋值)。

public class Student(){
	修饰符 类名参数{
		方法体;
	}

特点:

  • 方法名与类名相同,大小写也要一致

  • 没有返回值类型,连void也没有

  • 没有具体的返回值(不能由return带回结果数据) 空参构造:

  public Student(){
	 System,out.println("执行空参构造")	
  }

空参调用:Student s = new Student()

带参构造:

	public Student(String name,int age){
		System.out.println("执行带参构造");
		this.name = name;
		this.age = age;
	}

带参调用:Student s = new Student("Jim",18);


注意事项: 1.构造方法的定义

  • 如果没有定义构造方法,系统将给出一个默认的无参数的构造方法
  • 如果定义了构造方法,系统将不再提供默认的构造方法

2.构造方法的重载

  • 带参构造方法和无参构造方法,方法名相同,但是参数不同,这叫构造方法的重载

3.推荐使用方式

  • 无论是否使用,都手动书写无参数构造方法和带全部参数的构造方法

标准JavaBean

标准的Javabean类

  1. 类名需要见名知意
  2. 成员变量使用private修饰
  3. 提供至少两个构造方法
    • 无参构造方法
    • 带全部参数的构造方法
  4. 成员方法
    • 提供每一个成员变量对应的setXxx() / getXxx()
    • 如果还有其他行为,也需要写上

Java内存分配

new 一个对象: 1.加载class文件 2.申明局部变量 3.在堆内存中开辟一个空间 4.默认初始化 5.显示初始化 6.构造方法初始化 7.将堆内存中的地址值赋值给左边的局部变量

this本质:代表方法调用者的地址值
this作用:区分局部变量和成员变量


一些实例…

键盘录入:

第一套体系 (遇到空格,制表符,回车就停止接收)

	nextInt(); 	  //接收整数
	nextDouble(); //接收小数
	next();		  //接收字符串

第二套体系(遇到回车停止接收)

	nextLine(); //接收字符串
今日访问 ... 次 | 今日访客 ... 人 | 本页阅读 ...
小站已萌萌哒运行了 0 0 0
已累计耕耘 16 篇博文 · 共 42.69k 个字
总访问量 ...