前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JAVA- 面向对象编程(上)

JAVA- 面向对象编程(上)

作者头像
用户10920432
发布2024-01-18 17:50:44
1250
发布2024-01-18 17:50:44
举报
文章被收录于专栏:Python数据结构与算法

面向对象的特征及理解

面试题:oop的三大特征是什么? ---> 封装,继承,多态

类,对象是什么?

类是自定义类型, 对象是实体

通俗的讲类相当于建房子的图纸,对象相当于通过图纸建出来的所有房子

c3ef0158743a4e9da440a6de53ec9681.png
c3ef0158743a4e9da440a6de53ec9681.png

通过一个类,可以产生多个对象

面向对象: 找对象 创对象 使用对象

面向对象:注重的是对象,也就是参与过程所涉及到的主体。是通过逻辑将功能实现连接起来 面向过程: 1.把冰箱打开 2.把大象放入 3冰箱关起来

面向对象:打开冰箱,储存,关闭都是对冰箱的操作,是冰箱的行为。冰箱就是一个对象,所以只要操作冰箱所具备的功能,都要定义在冰箱中

代码语言:javascript
复制
package Test;

/**
 * 访问修饰限定符:
 * public: + 公有的
 * private: - 私有的
 * protected: 受保护的
 * 什么都不写 : 默认权限 -> 包访问权限
 */

class Person{
	//字段 -> 成员变量  : 定义在方法外边 类 的 里面
	//实例成员变量: 在对象Person里面
	//实例化没有初始化 默认值为对应的0值.-> (1.引用类型默认为null 2.简单类型默认为0)
	//我们也可以对实例成员变量进行赋值
	//char -> "\u0000"(空类型)  boolean -> false
	public String name = "lin";
	public int age = 18;
	
//	public char ch;
//	public boolean flg;
	
	//静态成员变量 不属于对象 属于类  ---有static 修饰
	public static int size = 100;
	//方法 -> 行为  eat 和 sleep  --- 实例成员方法
	public void eat() {
		int a = 10 ; //局部变量 --- 使用前需要初始化
		System.out.println("eat()!" );
	}
	
	public void sleep() {
		System.out.println("sleep()");
	}
	
	//静态成员方法
	public static void func1() {
		System.out.println("static::func1()");
	}
	
}
public class TestDemo{
	public static void main(String[] args) {
		//如何访问静态成员方法 ,跟静态成员变量类似通过类名访问 
		Person.func1();
	}
	
	public static void main4(String[] args) {
		//如何访问实例成员方法?
		//跟成员变量类似,也需要创建一个对象进行访问
		Person per = new Person();
		per.eat();
		per.sleep();
	}
	public static void main3(String[] args) {
		//如何访问静态的数据成员?
		//不需要new一个对象,直接通过类名就可以访问了
		//  类名.静态成员变量
		System.out.println(Person.size);
		
	}
	public static void main2(String[] args) {
		Person per = new Person();
		//如何访问对象当中的实例成员变量?
		//操作符: 点号  对象的引用 . 成员变量
		System.out.println(per.name); 
		System.out.println(per.age);
		
//		System.out.println(per.ch); 
//		System.out.println(per.flg); 
	}
	public static void main1(String[] args) {
		//实例化一个对象 通过关键字 new
		Person person1 = new Person();
		Person person2 = new Person();
		Person person3 = new Person();
		Person person4 = new Person();
	}
}

new 注意: new关键字用于创建一个对象的实例 使用 . 来访问对象中的属性和方法 同一个类可以创建多个实例

字段/属性/成员变量 在类中,但是方法外部定义的变量.这样的变量我们称为“字段”或“属性”或“成员变量"三种称呼都可以一般不会严格区分). 用于描述一个类中包含哪些数据

96e98b8b8e2b48a5b22e1ec1ce70c55e.png
96e98b8b8e2b48a5b22e1ec1ce70c55e.png

使用 . 访问对象的字段. “访问”既包含读,也包含写 对于一个对象的字段如果没有显式设置初始值,那么会被设置一个默认的初值 默认值规则: 。对于各种数字类型,默认值为 0. 。对于 boolean 类型,默认值为 false. 。对于用类型(String,Array, 以及自定制类), 默认值为 null

认识 null null 在Java 中为“空用",表示不引用任何对象,类似于C语言中的空指针如果对 null 进行,操作就会引发异常

c7ce796d94fb4ddabd8238626bedd287.png
c7ce796d94fb4ddabd8238626bedd287.png

控制台运行结果:

f0bf2ca17fd048589185baef0d345b0b.png
f0bf2ca17fd048589185baef0d345b0b.png

初始化后:

d9bc358affd34920931ca1703dd86b6a.png
d9bc358affd34920931ca1703dd86b6a.png

ebe4828fa38743c6b2505293dea13e06.png
ebe4828fa38743c6b2505293dea13e06.png

利用对象.变量名进行变量数据的修改

对于static来说,要访问静态成员方法可以利用:类名.方法名

cc160c920b524df385d7168df541b3c4.png
cc160c920b524df385d7168df541b3c4.png

a3770cc0f2be4279abf9d5fa121c7450.png
a3770cc0f2be4279abf9d5fa121c7450.png

静态方法内部不能够访问非静态的数据成员

7096960b4b834e6fa294ed65d2f4a416.png
7096960b4b834e6fa294ed65d2f4a416.png

389f83071e17439db8abfc56d1aed943.png
389f83071e17439db8abfc56d1aed943.png

Static 如果在任何方法上应用static 关键字,此方法称为静态方法 1.静态方法属于类,而不属于类的对象 2.可以直接调用静态方法,而无需创建类的实例。 3.静态方法可以访问静态数据成员,并可以更改静态数据成员的值 总结: 静态有限制,非静态没有限制 静态方法不能直接使用非静态数据成员或调用非静态方法(非静态数据成员和方法 是和实例相关的) 曾经写的方法为了简单,都统一加上了 static.但实际上一个方法具体要不要带 static,都需要是情形而定 main 方法为 static 方法

代码语言:javascript
复制
package Test;

class Student{
	public int age;//实例变量
	public String name;//实例变量
	public String sex; //实例变量
	public static int count;//类变量,也叫静态变量
	public final int size = 10;
//被final修饰局部变量的用途 保护局部变量的值 一旦将局部变量声明为final,它的值将被保护起来,不能被无意间或恶意地更改
	public static final int COUNT = 99;

public class TestDemo1 {
	public static void main(String[] args) {
		Student stu = new Student();//person为对象的引用
		stu.age = 10;
//		stu.count = 100;
		System.out.println(stu.age);
//		System.out.println(stu.count);

	}

 }
}
87e05763ca664b60b2823c85b5cf54be.png
87e05763ca664b60b2823c85b5cf54be.png

Summary: 这部分介绍了类和对象的概念,以及方法和属性 ,然后我们可以通过关键字new创建对象 Java的变量包括(1.实例成员量,2.静态成员变量-有static修饰) , 方法包括(1.静态成员方法,2.实例成员方法), 对于静态变量和方法可以通过类名去访问,而实例则需要创建对象,然后通过对象访问

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-11-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 面向对象的特征及理解
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档