Java面向对象(上)

OOP

OOP(Object Oriented Programming) 面向对象程序设计(核心:设计)

面向对象思想阶段:
   第一阶段:面向对象基本思想(JavaSE)
   第二阶段:面向接口编程思想(jdbc,web,框架)
   第三阶段:面向切面编程思想(Spring框架)

面向过程和面向对象
   面向过程:代表是C语言,强调的是过程,偏重事情"怎么做",将自己比喻成"执行者",基本单位:函数
   面向对象:代表是Java语言,强调的是对象,偏重事情"找谁做",将字节比喻成"指挥者",基本单位:类

   面向过程往往解决的是一些较小的问题
   面向对象往往解决的是一些较大的问题
   两种思想没有好坏之分,都是人们在生活中解决问题的手段而已

面向对象三大特征:
封装,继承,多态

类与对象的关系:

   类:一类事物的统称
       举例:人类,猫类,......

   对象:一类事物的具体体现:
       举例:那个长得像"周冬雨"的小姐姐,那个叫Tom的猫

   关系:
       类是抽象的,类是对象的抽象或模版
       对象是具体的,对象是类的实例或实体

   结论:
       需要在以前代码(测试类)的基础上,完成对象所对应模版类的设计

学习面向对象的小技巧

   1.找有没有合适帮助我们做事情对应的类
       如果有,直接第2步;
       如果没有,自己设计类
   2.通过类创建对象
   3.通过对象调用方法完成实际需求

类(class)

   含义:
       Java语言的基本单位
   分类:
       1.Java系统中提供的类(Java API中提供的类)
           例如:String
       2.程序员设计的类
   包含:
       类的成员
           成员量
           成员方法
           成员内部类
       类的内容
           构造器
           代码块

成员量

   含义:
       声明在类中方法外的变量或常量
   分类:
       成员变量:声明在类中方法外的变量
           实例变量(对象变量):
               声明在类中方法外,且没有static关键字修饰的变量,变量归属于对象
           静态变量(类变量):暂不涉及
               声明在类中方法外,且含有static关键字修饰的变量,变量归属于类
       成员常量:声明在类中方法外的常量(暂不涉及)
           实例常量(对象常量):
               声明在类中方法外,且没有static关键字修饰的常量,常量归属于对象
           静态常量(类常量):暂不涉及
               声明在类中方法外,且含有static关键字修饰的常量,常量归属于类

成员方法

   含义:
       声名在类中的方法
   分类:
       实例方法(对象方法)
           声明在类中且没有static关键字修饰的方法
       静态方法(类方法)
           声明在类中且含有static关键字修饰的方法

类的设计步骤

   1.根据实际需求,在类中加入实例变量和实例方法完成基础模版类的设计
   2.根据实际需求,在类中加入封装思想,提高模版类的数据的安全性
   3.根据实际需求,在类中加入this关键字第一种用法,便于达到优化的效果
   4.根据实际需求,在类中加入合适的构造器,便于对象创建的多元性
   5.根据实际需求,在类中加入构造器代码块,便于达到优化的效果
   6.根据实际需求,在类中加入this关键字第二种用法,便于达到优化的效果
   7.根据实际需求,在类中加入静态概念
   8.根据实际需求,在类中加入继承思想,便于提高代码的复用性
   9.根据实际需求,在类中加入抽象概念,便于解决继承思想中的安全隐患
   10.根据实际需求,在类中加入final关键字
   11.根据实际需求,在类中加入接口概念
   12.根据实际需求,在类中加入内部类概念
   13.根据实际需求,在类中加入枚举类概念

类的格式:

   位置:
       现阶段在和含有main()的类同包下创建另外一个类
   格式:
       public class 类名 {
           实例变量
           实例方法
       }

对象的创建

   位置:
       在测试类中(含有main()的类中)
   格式:
       类名 对象名 = new 类名(实参);

对象的访问

   获取格式:
       对象名.实例变量名;
       对象名.实例方法名(实参);
   赋值格式:
       对象名.实例变量名 = 初始化值;
		//完成学生对象的创建
		Student s1 = new Student();
		System.out.println(s1);

		//获取学生的姓名和年龄
		System.out.println(s1.name);
		System.out.println(s1.age);

		//给学生对象进行赋值操作
		s1.name = "卢小琪";
		s1.age = 18;

		//获取学生的姓名和年龄
		System.out.println(s1.name);
		System.out.println(s1.age);
		//调用学生对象的方法
		s1.study();

		System.out.println("===================================");

		//创建学生对象
		Student s2 = new Student();
		//获取学生的姓名和年龄
		System.out.println(s2.name);
		System.out.println(s2.age);

Student类

	//实例变量
	String name;
	int age;

	//实例方法
	public void study () {
   
		System.out.println(age + "岁的" + name + "正在学习HelloWorld!!!");
	}

实例变量和局部变量区别

实例变量:声明在类中方法外,且没有static关键字修饰的变量
局部变量:声明方法内部或者方法声明上的变量

实例变量和局部变量的区别:
   代码中声明位置不同:
       实例变量:类中方法外
       局部变量:方法内部或者方法声明上
   内存中位置不同:
       实例变量:堆内存
       局部变量:栈内存
   变量的默认值不同:
       实例变量:含有默认值
       局部变量:没有默认值
   代码中的作用域不同:
       实例变量:类中(静态成员除外)
       局部变量:方法中
   内存中的生命周期不同:
       实例变量:随着对象的创建而加载,随着对象的回收而消失
       局部变量:随着方法的调用而加载,随着方法的出栈而消失
   加载方式不同:
       实例变量:随着对象的创建而加载,每创建一次对象就会加载一次
       局部变量:随着方法的调用而加载,每调用一次方法就会加载一次

this 关键字

变量的特点之一:
   在同一作用域内不可以创建同名的变量
考虑到实例变量和局部变量不在同一作用域内,在同一个类中可以创建同名的实例变量和局部变量

this关键字的第一种用法:
   应用场景:
       (子)类中的实例方法
       (子)类中的构造器
   语法格式:
       this.实例变量名;
       this.实例方法名(实参);
   语法作用:
       用来区分同一个类中出现同名的实例变量和局部变量
   语法含义:
       哪个对象调用了this关键字所在的实例方法或构造器,this关键字就代表哪个对象
		//创建Var对象
		Var var = new Var();
		var.method();
		System.out.println("========================");
		//创建Var对象
		Var var1 = new Var();
		System.out.println("var1 = " + var1);
		var1.show();

		System.out.println("=============");

		//创建Var对象
		Var var2 = new Var();
		System.out.println("var2 = " + var2);
		var2.show();

Var 类

	//实例变量
	int num = 10;
	public void method () {
   
		//局部变量
		int num = 20;
		System.out.println("num = " + num);//20 就近原则
		System.out.println("this.num = " + this.num);
	}
	public void show () {
   
		System.out.println
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Patient365

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值