手捏Java知识点

今天开始面向对象了

在这里插入图片描述

面向对象基础

    类:由属性和行为组成属性:在类中通过成员变量来体现行为:在类中通过成员方法来体现public class 类名{//成员变量变量1的数据类型 变量1;变量2的数据类型 变量2;...//成员方法方法1;方法2;...}

有几个重要的概念和特性需要了解。

在这里插入图片描述

类和对象
在Java中,类是描述具有相同属性和行为的对象的蓝图。通过定义类,可以创建
多个实例,即对象。对象是类的具体实现,并且可以使用其属性和方法来完成特
定的任务。
封装
封装是将数据和操作组合起来,以便通过类的接口访问它们。通过将数据字段隐
藏在类的内部,并提供公共方法来访问和修改数据,可以保护数据的完整性和安
全性。

在这里插入图片描述

继承
继承是指一个类获得另一个类的属性和方法。通过继承,子类可以重用父类的代
码,并且还可以添加自己的特定功能。在Java中,使用关键字extends实现继承
关系。
多态
多态是指一个对象可以表现出多种形态或类型。通过多态,可以使用统一的接
口来处理不同类型的对象,提高代码的可复用性和可拓展性。在Java中,多态
可以通过方法的重写和接口的实现来实现。
抽象类与接口
抽象类是无法被实例化的类,它可以包含抽象方法和非抽象方法。抽象方法只有
声明而没有具体实现,需要子类去实现。接口定义了一组方法的规范,任何类都
可以实现一个或多个接口。不同类之间通过继承抽象类或实现接口来共享代码
和行为。

在这里插入图片描述

除此之外还有其他一些与面向对象相关的概念,如构造函数、方法重载、访问修饰符等。理解这些基础知识也很重要。

代码示例

定义一个新的手机类并在这个类中使用

public class crj {public static void main(String[] args) {Phone p = new Phone();//使用成员变量System.out.println(p.brand);System.out.println(p.price);p.brand = "小米";p.price = 2999;System.out.println(p.brand);System.out.println(p.price);//使用成员方法p.call();p.sendPassage();}
}

新定义一个学生类,并在这个类中使用

public class crj {public static void main(String[] args) {Student s = new Student();//调用成员变量s.name="高启强";s.age=39;System.out.println(s.name+s.age);//调用成员方法s.study();s.doHomework();}
}
public class Student {//成员变量String name;int age;//private int age;public void setAge(int a) {
//        age = a;if (a < 0 || a > 120) {System.out.println("年龄有误");} else {age = a;}}//成员方法public void study() {System.out.println("好好学习");}public void doHomework() {System.out.println("多加练习");int j = 0;}public void show() {System.out.println(name + "," + age);}public String getName(){return name;}public int getAge(){return age;}
}

在这里插入图片描述

private关键字

    是一个权限修饰符可以修饰成员作用:保护成员不被别的类使用,被private修饰的成员只在本类中才能访问使用方法提供get变量名()用于获取成员变量的值,方法用public修饰set变量名(参数)用于设置成员变量的值方法用public修饰在Java中,private是一种访问修饰符(access modifier),用于控制类的成员(字段和方法)的可见性。具体来说,private修饰的成员只能在所属类的内部访问,而在类的外部是不可见的。使用private关键字可以实现封装(encapsulation)的概念,将类的内部数据和实现细节隐藏起来,只暴露必要的接口给外部使用。这样做的好处是可以提高代码的安全性和可维护性,防止外部代码直接访问类的私有成员,从而避免不经意间改变了类的内部状态。

下面演示了private关键字的使用:

public class Person {private String name;private int age;public Person(String name, int age) {this.name = name;this.age = age;}public void sayHello() {System.out.println("Hello, my name is " + name);}private void increaseAge() {age++;}public void celebrateBirthday() {increaseAge();System.out.println("Happy birthday! Now I'm " + age + " years old.");}
}
在上述代码中,name和age字段被声明为private,只能在Person类的内部访
问。sayHello方法是公有方法,可以被外部代码调用。increaseAge方法被声明
为private,只能在Person类的内部调用。
这意味着,当我们创建一个Person对象并调用celebrateBirthday方法时,
age的增加是在类的内部发生的,外部代码无法直接访问和更改age的值。
Person person = new Person("Alice", 25);
person.sayHello();  // 正确,输出:Hello, my name is Alice
person.increaseAge();  // 错误,无法调用私有方法
System.out.println(person.age);  // 错误,无法访问私有字段
person.celebrateBirthday();  // 正确,输出:Happy birthday! Now I'm 26 years old.

总之

private关键字用于限制类的成员的访问范围,只允许在所属类的内部访问。通
过使用private关键字,可以实现封装,提高代码的安全性和可维护性。

在这里插入图片描述

this关键字

主要有以下几个用途:

引用当前对象的实例变量
在类的方法内部,如果局部变量和实例变量同名,可以使用this关键字来指定访
问实例变量。例如:this.variableName。
调用当前对象的其他方法
在类的某个方法内部,可以使用this关键字来调用当前对象的其他方法。
例如:this.methodName()。
在构造方法中调用其他构造方法
在一个类中,可以定义多个构造方法,通过使用不同的参数列表进行重载。如果
一个构造方法需要调用另一个构造方法,可以使用this关键字。
例如:this(parameters)。

代码示例

public class crj {public static void main(String[] args) {Student2 s = new Student2();s.setName("林清玄");s.setAge(30);System.out.println(s.getName()+","+s.getAge());}
}
public class Student2 {private String name;private int age;public void setName(String name) {this.name = name;}public String getName(){return name;}public void setAge(int age) {this.age = age;}public int getAge(){return age;}
}

在这里插入图片描述

构造方法注意事项

    创建 如果没有定义,系统将给出一个默认的无参构造方法如果定义了,系统将不再提供默认构造方法重载 如果自定义了带参构造方法,还想使用无参构造方法,就必须再写一个无参构造方法推荐 永远提供无参构造方法构造方法名称必须与类名完全相同,大小写也要匹配。构造方法没有返回类型,连 void 关键字也不需要。如果没有显式地定义构造方法,Java 会自动为类定义一个默认的无参构造方法。如果自定义了有参数的构造方法,Java将不会自动创建无参构造方法。这就意味着,如果需要创建一个对象,必须显式地提供一个无参构造方法。如果类中同时存在无参构造方法和有参构造方法,那么在创建对象时默认首选无参构造方法。构造方法可以重载,也就是说可以定义多个具有不同参数列表的构造方法,以应对不同的对象创建需求。在子类中,构造方法的第一行必须是调用父类的构造方法,否则编译器会自动添加默认的 super() 方法调用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/58410.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何优雅地修改同事的代码

前言 互联网开发多以团队协同的方式为主&#xff0c;在实际的开发过程中&#xff0c;我们经常会面对在同事的代码的基础上重新开发的需求。然而由于人员的迭代、需求的变更、文档的缺失等原因&#xff0c;我们贸然修改同事的代码往往需要承担一些额外的开发风险&#xff0c;比如…

Java8 map.getOrDefault()你真的了解吗

大家好&#xff0c;我是三叔&#xff0c;很高兴这期又和大家见面了&#xff0c;一个奋斗在互联网的打工人。 map.getOrDefault()方法 在Java编程中&#xff0c;Map是一种非常常用的数据结构。Map通常用于存储键值对&#xff0c;其中每个键映射到一个值。当我们尝试访问一个不…

同是打工人,学Python搞副业的朋友跟高启强一样实现逆袭了?

年过完了&#xff0c;现在已经回归工作岗位&#xff0c;接着拧自己的螺丝钉&#xff0c;不过&#xff0c;假期也不算寂寞&#xff0c;追了大热的电视剧《狂飙》。卖鱼小贩高启强的逆袭让我这种打工人太羡慕了&#xff0c;当他坐在白金瀚的办公室里美滋滋的喝着红酒的时候&#…

张杰清唱高启强专属BGM简直就是天作之合,千万别点进来看

张杰清唱高启强专属BGM简直就是天作之合&#xff0c;千万别点进来看&#xff0c;#张杰#BGM#音乐 张杰演唱的《听》狂飙高启强自从出现在抖音上更是火得不可思议&#xff0c;它成为了不少年轻人喜爱的BGM&#xff0c;尤其是用它作为专属BGM的抖音视频更是受到网友的一致好评。 …

老默我想吃鱼了(抽象艺术)

目录 指针地位 代码示例 人物关系 代码分析 总结 指针地位 在C语言中 指针的地位可以说是王中王 代码示例 如下 #define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>int main() {int a 15;printf("老默出手前鱼的值:%d\n", a);int* pa &a;*pa 30;p…

冯雷老师:为什么大嫂陈书婷让高启强终生难忘?

高启强对大嫂陈书婷的感情非常深&#xff0c;大嫂死后高启强终生未娶&#xff0c;那为什么大嫂陈书婷让高启强终生难忘呢&#xff1f; 第一、既能助力男人&#xff0c;又识大体懂分寸。在帮助高启强拜泰叔当干爹后&#xff0c;就回归家庭当一个贤妻良母。从不插手老公的生意。…

学术汇报(academic presentation)/PPT应该怎么做?

已经上了研究生两年了&#xff0c;但是一直没有规范过PPT应该怎么做&#xff1f;都是瞎做的&#xff0c;也没有注意过排版什么的&#xff0c;前一段时间被老师批评后&#xff0c;才开始想怎么做好学术汇报&#xff0c;下面将我整理的一些规范和步骤记录下来 一些琐碎的事情&…

阿里、腾讯御用PPT设计师:让你在年终汇报中做最靓的仔!

你知道现在年轻人靠什么赚钱吗&#xff1f; 前几天&#xff0c;知乎上一篇关于“副业”的回答吓我一跳&#xff0c;一个大三学生&#xff0c;只靠副业赚够14W。 14万什么概念&#xff0c;是一个普通白领不吃不喝至少2年的工资。 干什么能一下赚这么多&#xff1f; 他一没抢钱二…

ChatGPT中的提示工程(Prompt Engineering)怎么做?50页最新PPT下载

整理自&#xff1a;专知 在公众号后台回复 Prompt Engineering 即可获取PPT。 ChatGPT爆火之后&#xff0c;也逐渐衍生出一大堆新的概念和机会。提示工程&#xff08;Prompt Engineering&#xff09;便是其中之一。据笔者所知&#xff0c;国内外目前已有提示工程相关的工程师岗…

用 ChatGPT 将 Excel 工作效率提高 10 倍!离做PPT还远吗

源&#xff5c;机器之心 在未来&#xff0c;精通 Excel 或许不再是简历亮点了。 ChatGPT 自去年 11 月 30 日 OpenAI 重磅推出以来&#xff0c;这款 AI 聊天机器人迅速成为 AI 界的「当红炸子鸡」。一经发布&#xff0c;不少网友更是痴迷到通宵熬夜和它对话聊天&#xff0c;就为…

招银网络科技 笔试、面试

1. 笔试 1.1 题目 有16种状态码分别是1-16&#xff0c;本来应该记为{1, 1, 1, 3}&#xff0c;但是由于粗心记为{1113}&#xff0c;题目&#xff1a;求出给定的输入如{1113}能够构成不同状态码的个数。{1113}可以构成{1, 1, 1, 3}, {11, 1, 3}, {1, 11, 3}, {1, 1, 13}, {11, …

招商银行网点管理系统

目录 功能一&#xff1a;查询所有展示 1.根据城市来进行条件查询 2.当进入首页后显示所有网点信息 3.根据城市进行条件查询 功能二&#xff1a;新增网点 功能三&#xff1a;修改网点 功能四&#xff1a;删除功能 功能一&#xff1a;查询所有展示 1.根据城市来进行条件查…

独家 | 招商银行:玩转校园招聘新方式 挖掘金融科技新人才

数字经济时代&#xff0c;金融科技人才队伍的引进与培养是招商银行人才体系建设的关键任务。 01.金融科技校招2大核心课题 招商银行数字化转型过程中&#xff0c;线上化、生态化、平台化、智能化、数据化全面加速发展&#xff0c;对人才队伍能力提出新要求。 2大核心课题&am…

【招商银行数据方向笔试题】—— 信用卡推荐客户列表

题目&#xff1a; 现在信用卡开展营销活动&#xff0c;持有我行信用卡客户推荐新户办卡&#xff0c;开卡成功后可获得积分奖励。规定每个客户最多可推荐两个新户且一个新户只能被推荐一次。但允许链接效应&#xff0c;即若客户A推荐了新户B&#xff0c;新户B推荐新户C&#xff…

金融银行测试面试题分享

1、网上银行转账是怎么测的&#xff0c;设计一下测试用例。 回答思路&#xff1a; 宏观上可以从质量模型&#xff08;万能公式&#xff09;来考虑&#xff0c;重点需要测试转账的功能、性能与安全性。设计测试用例可以使用场景法为主&#xff0c;先列出转账的基本流和备选流。…

CNAPS Code 查询(招商银行)

招商银行的妹子实在太傻了&#xff0c;根本不知道什么是CNAPS Code、联行号&#xff0c;完全答非所问。 最后还是自己搞定了&#xff0c;如图: 最后再看看招行人员的英语水平&#xff0c;真是不知道什么是东西&#xff1a; 我的群&#xff1a;1、Cocos2D&Unity&Java程序…

性能超越GPU、FPGA,华人学者提出软件算法架构加速AI实时化

作者 | 王言治&#xff0c;美国东北大学电子与计算机工程系助理教授 出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09; 近年来&#xff0c;机器学习(Machine Learning)领域的研究和发展可谓是与日俱新&#xff0c;各式各样与机器学习相关的研究成果与应用层出不穷&…

OpenAI到底做对了什么?

OpenAI通过一系列在AI技术和产品上的突破&#xff0c;引爆了通用人工智能&#xff08;AGI&#xff09;的发展&#xff0c;被微软CEO 萨提亚 纳德拉称为“堪比工业革命的技术浪潮”。OpenAI趟出来的以大语言模型为主的AGI技术路线&#xff0c;也基本上宣告了其他AI技术路线的终…

OpenAI到底做对了什么?李建忠研思

OpenAI通过一系列在AI技术和产品上的突破&#xff0c;引爆了通用人工智能&#xff08;AGI&#xff09;的发展&#xff0c;被微软CEO 萨提亚 纳德拉称为“堪比工业革命的技术浪潮”。OpenAI趟出来的以大语言模型为主的AGI技术路线&#xff0c;也基本上宣告了其他AI技术路线的终…

使用chatGPT完成股票价格预测模型

序言 笔者对国内股票的程序API不甚了解&#xff0c;所以使用国外的股票平台Finazon&#xff0c;请读者自行参考。 在本文中&#xff0c;我使用Finazon获取我们想预测的股票的价格时间序列数据&#xff0c;然后&#xff0c;我们将这些数据输入到 ChatGPT 生成的程序中。包括数…