Java基础之面向对象

面向过程与面向对象的区别

注重点重点不同,面向过程注重的是过程,我是事务的执行者;面向对象注重对象,我是事务的指挥者。

面向对象的优点

1.将复杂问题简单化

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

3.跟贴近人的思维,懒人思想

类和对象分别是什么

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

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

成员变量与局部变量

区别:

成员变量和局部变量 区别
  1.书写位置
 成员变量:类中,方法外
 局部变量:方法中或方法上
 2.在内存中表现
 成员变量:堆内存中
局部变量: 栈内存中
 3.生命周期
 成员变量:随着对象进入堆内存中创建,随着对象销毁而销毁
 局部变量:随着方法的调用而入栈,随着方法结束而销毁
4.作用域
 成员变量:整个类中
 局部变量:方法中
5.初始值
 成员变量:跟堆内存一样 默认初始值
 局部变量:默认没有初值,不给初值直接编译报错

相关代码

public static void fun2(Person p) {
		p.name = "yy";
		p.age = 23;
	}
	
	public static void main(String[] args) {
		int a = 100;
		fun1(a);
		System.out.println(a);
		
		Person p1 = new Person();
		p1.name = "hh";
		p1.age = 24;
		fun2(p1);
		p1.sayHi();
	}
}

什么是匿名对象

一般在1.方法传参数时使用

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

实例

public class Demo05 {
	public static void setNameAndAge(Person p,String name,int age) {
		p.name = name;
		p.age = age;
	}
	public static void main(String[] args) {
		//创建两个person对象 并赋值
		//将重复代码抽成一个方法
		Person p1 = new Person();
		p1.name = "wanglong";
		p1.age = 16;
                setNameAndAge(new Person(), "kun", 20);
	}
}

好处:使用匿名对象 当方法参数,减少代码量 使用方便

封装

本质就是隐藏代码的实现和属性,但也需要开放访问方式(方法)才能获取和修改。

好处:1.增加代码的复用性 2.提高代码的安全性

关键字(权限修饰符)

private 私有的,被修饰的属性只能本类中访问

class Phone{
	//java bean 对象(Java实体类创建出来的对象)
	// 1.声明成员变量 都需要私有化
	// 2.给每一个成员变量提供 setter/getter方法
	//3.必须提供 无参的构造方法
	private String phoneName;
	//对外开放访问方式
	//获取方法
	public String getPhoneName() {
		return phoneName;
	}
	//修改方法(设置方法)
	public void setPhoneName(String name) {
		//就近原则
		//关键字 this 代表的是本类的对象
		//this.成员变量 获取本类的成员变量
		//this.成员变量 = “哈哈”
		//this.成员方法 调用本类的成员方法
		//谁调用了这个方法谁就是this
		this.phoneName = phoneName;
	}
	private String color;
	//命名规范
	//获取 get + 成员变量名(首字母大写)
	//修改 set + 成员变量名(首字母大写)
	//标准写法 set方法没有返回值
	public String getColor() {
		return color;
	}	
	public void setColor(String color) {
		this.color = color;
	}
}

构造方法

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

分为有参和无参两种构造方法。

有参构造方法

public Pen(String name,String color) {
		this.name = name;
		this.color = color;
		System.out.println("我是pen的有参构造方法");
	}

无参构造方法

public Pen() {
		this.name = "圆珠笔";
		this.color = "绿色";
		System.out.println("我是pen的无参构造方法");
	}

类中的书写顺序

1.成员变量
2.构造方法
3.成员方法
4.get/set方法


class Shoe{
	private String name;
	private String color;
	public Shoe(){
		this.name = "耐克";
		this.color = "红色";
		System.out.println("我是shoe的无参构造方法");
	}
	public Shoe(String name,String color) {
		this.name = name;
		this.color = color;
		System.out.println("我是shoe的有参构造方法");
	}
	public void sayHi() {
		System.out.println(this.name + " " + this.color);
	}
	public void run() {
		System.out.println("跑得快");
	}
	public void feel() {
		System.out.println("穿着舒服");
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getColor() {
		return color;
	}
	public void setColor(String color) {
		this.color = color;
	}
}

猜你喜欢

转载自blog.csdn.net/hehanhh/article/details/80246490