Java学习之类和对象

一、面向对象

对象::用类创建出来的就是对象(具体的事物)

面向对象:重点在对象,我该找谁干什么。面向对象相当于是事物的指挥者。

面向对象的好处:

1.将复杂的问题简单化

2.从事务的执行者转化为事务的指挥者

3.它是一种思想,更贴近人得思维


类和对象:

java中 最基本的单位就是类

类:对抽象事物的描述(模板)

对象:用类创建出来的就是对象(具体的事物)


创建一个类

关键词 class 类名(大驼峰)

public class Demo01{}
创建一个对象
Student student = new Student();

Student student 是对一个Student对象的引用(保存对象的地址)

Student student = new Student();
		// 使用对象名.属性名 进行赋值和取值
		student.name = "王五";
		student.age = 22;
		student.gender = "男";
		//调用成员方法 对象名.方法名()
		student.eat();
		//哪那个对象调用的该方法 打印的就是那个对象的属性
		student.sayHi();
 
 
class Student{
	//属性(成员变量 实例变量) 
	//书写位置:类中 方法外
	//行为(方法) 跟函数一样
	//书写位置:类中
	//没有给成员变量初值 成员变量有默认初始化 根据类型不同初始化值不同 
	String name;
	int age;
	String gender;
	
	//成员方法/实例方法
	public void eat() {
		System.out.println("吃饭");
	}
	public void sleep() {
		System.out.println("睡觉");
	}
	public void playGame(String game) {
		System.out.println("玩"+game);
	}
	//介绍自己的方法
	public void sayHi(){
		System.out.println("姓名:"+name);
		System.out.println("年龄:"+age);
		System.out.println("性别:"+gender);
	}
}


二、成员变量与局部变量

区别:

1.书写位置

成员变量:类中 方法外

局部变量:方法中或方法上

2.在内存中表现

成员变量:堆内存中

局部变量:栈内存中

3.生命周期

成员变量:随着对象进入堆内存中创建 随着对象销毁而销毁

局部变量:随着方法的调用而入栈 随着方法的结束而销毁

4.作用域

成员变量:整个类中

局部变量:方法中

5.初始值 成员变量:跟堆内存一样 默认初始值

局部变量:默认没有初值 使用时必须初始化才可以使用


成员变量:
class Car{
	// 声明成员变量的时候,可以给初值
	String name; // 车名
	String displacement; //排气量
	String color; //颜色
}

局部变量:

public void startCar(int a) {
		// 在方法中的变量是局部变量
		// 在方法上的变量也是局部变量
		int num = 10;
}

三、基本数据类型和引用参数类型

public class Demo04 {
	// 参数是基本数据类型
	public static void fun1(int a) {
		System.out.println(a);
		a = 10;
	}
	// 参数是引用数据类型
	// 要什么类型 就给什么类型
	public static void fun2(Person p) {
		p.name = "李四";
		p.age = 24;
	}
	
	public static void main(String[] args) {
		int a = 100;
		fun1(a);
		System.out.println(a);
		Person p1 = new Person();
		p1.name = "王五";
		p1.age = 28;
		fun2(p1);
		p1.sayHi();
	}
}

四、匿名对象

匿名对象:没有名字的对象

1.在方法传参数的时候使用

setNameAndAge(new Person(), "jiun", 20);

2.只调用一下方法(不赋值的情况下)

new Person().fun();
五、Java Bean 对象

java bean 对象(java 实体类创建出来的对象)

1.声明成员变量 都需要 私有化

2.给每一个成员变量提供 set/get方法

3.必须提供无参的构造方法 

public class Person {
	private String name;
	
	public Person(){
		
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getName() {
		return name;
	}
}
this关键字

关键字 this 代表的是本类的对象

this.成员变量获取本类的成员变量

this.成员变量="";给本类的成员变量赋值

this.成员方法调用本类的成员方法

谁调用了这个方法谁就是this

this在内存中的表现:


构造方法:对 对象的成员变量进行初始化

写法:

1.没有返回值类型(void也不用写)

2.构造方法方法名要与类名完全一致

class Pen{
	public Pen() {
		System.out.println("我是Pen类的无参构造方法");
	}
}

类中的书写顺序

1.成员变量

2.构造方法(无参 有参)

3.成员方法

4.set/get方法

 










猜你喜欢

转载自blog.csdn.net/ande1922/article/details/80246321