Java OOP 面向对象编程 第一章笔记

JavaOOP

OOP(Object Oriented Programming): 面向对象编程

1,编程思想

​ 面向对象:做某一件事情,不需要亲力亲为的,只需要将该事情的步骤整合起来。

​ 面向过程:做某一件事情,是有步骤有过程的,并且每一个步骤都需要自己亲力亲为。

1,什么是面向对象和面向过程

面向过程与面向对象都是我们编程中,编写程序的一种思维方式。
1)面向过程的程序设计方式,是遇到一件事时,思考“我该怎么做”,然后一步步实现的过程。
例如:公司打扫卫生(擦玻璃、扫地、拖地、倒垃圾等),按照面向过程的程序设计方式会思考“打扫卫生我该怎么做,然后一件件的完成”,最后把公司卫生打扫干净了。

2)面向对象的程序设计方式,是遇到一件事时,思考“我该让谁来做”,然后那个“谁”就是对象,他要怎么做这件事是他自己的事,反正最后一群对象合力能把事就好就行了。

例如,公司打扫卫生(擦玻璃、扫地、拖地、倒垃圾等),按照面向对象的程序设计方式会思考“我该让谁来做,如小明擦玻璃、让小丽扫地、让小郭拖地、让小强倒垃圾等”,这里的“小明、小丽、小郭、小强”就是对象,他们要打扫卫生,怎么打扫是他们自己的事,反正最后一群对象合力把公司卫生打扫干净了。

2,面向对象思维方式的好处

  1. 面向对象思维方式是一种更符合人们思考习惯的思想
  2. 面向过程思维方式中更多的体现的是执行者(自己做事情),面向对象中更多的体现是指挥者(指挥对象做事情)。
  3. 面向对象思维方式将复杂的问题简单化。

3,面向对象的特征

  1. 封装:保护内部的操作不被破坏;
  2. 继承:在原本的基础之上继续进行扩充;
  3. 多态:在一个指定的范围之内进行概念的转换。

类和对象

生活中,先有对象再根据对象的属性和行为抽取出类
​ 程序中,先有类,再通过创建出实例对象

​ 类

class Person{
	//类名首字母大写,大驼峰命名 UserName
    
    //属性 -- 成员变量 特点:有默认值    java中没有全局变量的概念
    /*
    	String null
    	int		0
    	double  0.0
    	boolean false
    	char ''
    	
    	访问修饰符:
    		public private protected default 缺省的
    		
    	基本数据类型
    		整数类型	内存大小	
    		byte		1
    		short		2
    		int			4
    		long		8
    		浮点类型
    		float		4
    		double		8
    		字符类型
    		char		2
    		布尔类型
    		boolean		1
    		
    		
    	字节
    	1GB	=	1024MB
    	1MB	=	1024KB
    	1KB	=	1024Byte
    	1B	=	8bit	8位
    	
    */
    public String name; //小驼峰命名
    
    //方法
    public void methodName(int aaaa){
        int a = 0; //局部变量 ,必须要附初始值
        int b = a+1; 
    }
}

对象

Person p = new Person();

一个java文件中可以写多个类

public class A {
	//但是只能有一个public 修饰的类,并且public修饰的类名 必须和文件名一致
}
class B{
	
}
 class C{
	
}

5,构造方法

Person p = new Person();
//Person() 构造方法
//特点:没有返回值类型,方法名和类名相同
		每一个类都会有一个默认的无参构造方法
		当写一个有参构造时,无参构造会消失。
//作用,实例化对象
		给属性赋初始值

6,方法重载 overload

public Person(){
	//无参构造
}
public Person(String name, int age, String sex) {
    //有参构造
	this.name = name;
	this.age = age;
	this.sex = sex;
}
Person p = new Person();
Person p = new Person("",1,"");

方法重载的特点:
在同一个类中,方法名相同,参数列表不同(个数,类型,顺序)
与返回值、访问修饰符无关

7,this关键字

public Person(String name, int age, String sex) {
    //有参构造
	this.name = name;	//区别参数和成员变量
	this.age = age;
	this.sex = sex;
}
this :表示对本类对象的引用 

this(); 调用无参构造方法,必须写在构造方法中的第一行

8,static关键字

封装:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问

封装的步骤

1,私有化属性

private String name;
private int age;

2,提供的公共方法来实现对隐藏信息的操作和访问(getter/setter)

public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

3,在方法中加入控制语句

public void setAge(int age) {
		if(age<=0)
			this.age=2;
		this.age = age;
	}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值