什么是类和对象?

类是模子,确定对象会拥有的特征(属性)和行为(方法),类的特点:类是对象的类型,具有相同属性和方法的一组对象的集合。对象是类的实例,什么是对象的属性?属性是对象拥有的各种特征;每个对象的每个属性都拥有特定值,对象的方法也就是对象执行的操作。类是抽象的概念,仅仅是模板,客观不存在。而对象是你可以看得到摸得到的具体实体,客观存在。

如何定义Java中的类?

定义类

1、类的重要性:所有的JAVA程序都以类class为组织单元;

2、什么是类:类是模子,确定对象会拥有的特征(属性)和行为(方法);

3、类的组成:属性和方法;

4、定义一个类的步骤:

a.定义类名 public class 类名{}

b.编写类的属性 //定义属性部分,可以从属性1—属性n,也可以没有

c.编写类的方法 //定义方法部分,可以从方法1—方法n,也可以没有。

如何使用Java中的对象?

使用对象的步骤:

1、创建对象 Telphone phone=new Telphone();phone对象就是Telphone类型的。类名 对象名=new 类名(); 这个语法就是对象的实例化。

2、通过对象名来使用这个对象,引用对象的属性:对象.属性,可以引用赋值;对象.属性=xx;对象.方法名,调用方法。类是以代码形式保存在文件当中,当我把文件信息放在内存中,这些信息的集合我们就把它称为对象,这个过程我们就叫做实例化。Telphone phone=new Telphone();把对象赋给了对象名这个变量,实际phone这个变量名只是指向了这个对象的空间地址。new 一个类名加上小括号() 这就是实例化,然后赋给某个变量名,变量的类型就是对象的类型,即所属类这个类型。刚创建对象时如果没有给属性赋值,则是默认值,通常使用对象会用两个操作,即给实例变量赋值,或者调用对象的方法。

题目:

设计银行项目中的注册银行用户基本信息的类,包括账户卡号、姓名、身份证号、联系电话、家庭住址。

要求:是一个标准Java类(数据私有,提供seter/getter),然后提供一个toString方法打印该银行用户的信息。

代码:

import java.util.Scanner;public class triangle {//声明类中的变量,账号,姓名,身份证号,电话,地址int number;String name;String id;int Telephone;String address;public triangle(int number,String name,String id,int Telephone,String address){//构造方法给变量赋值this.number=number;this.name=name;this.id=id;this.Telephone=Telephone;this.address=address;}static  void toString(int number,String name,String id,int Telephone,String address){//此函数用作打印数据System.out.println("卡号是:"+number);System.out.println("姓名是:"+name);System.out.println("身份证号是:"+id);System.out.println("电话是:"+Telephone);System.out.println("家庭住址:"+address);}public static void main(String[] args) {Scanner sc=new Scanner(System.in);//输入数据int number=sc.nextInt();String name=sc.next();String id=sc.next();int Telephone=sc.nextInt();String address=sc.next();triangle t=new triangle(number,name,id,Telephone,address);//初始化toString(t.number,t.name,t.id,t.Telephone,t.address);//打印}
}

运行结果如下:

this关键字

首先我们需要知道this代表什么?

this关键字代表本类,例如Class Student
类中的this即代表Student,另外要注意一点,this关键字只能在方法内使用,方法外使用是编译不通过的!!!

用法一:this.属性名
this表示当前类,this.属性名可以给当前类的属性赋值,可以在本类中除静态方法外的任何方法(包括构造器、私有方法)中使用,这里要注意static的特性(1.遵循静态调用 2·stati关键字不能与this、super关键字共用)。
另外,若本类成员变量与方法内局部变量同名,this.属性名代表的是什么呢??
当然是局部变量了,因为Java遵循就近原则,通俗地讲,就是谁离我近,我就代表谁。
代码实现:

    class Student{String name;public void hello(){this.name=name;}}

用法二:this.方法
这里比较好理解,this代表本类,this.方法即调用方法,除了静态方法中不可使用,本类其他方法包括私有方法均可使用此格式调用其他方法,只是我们通常省略this关键字。
代码实现:

class Student{String name;public void hello(){this.name=name;}//    this.name=name;this需要在方法内使用public void hi(){this.hello();hello();he();}private void he(){this.name=name;hello();this.he();}}

用法三:this()
此格式用于构造器内,比如我们可以在无参构造内调用含参构造,那么这时候就需要在this()传入参数来实现,同理要想在含参构造内调用无参构造,只需在构造器代码第一行写this()即可,但是注意,this()与this(参数列表)不可同时使用!
代码实现:

    public Student(){this("name");this.name=name;this.he();}public Student(String name){//        this();两个this不能一起使用}

注意:

     static void play(){//        this.name=name;静态不能调用非静态}

其中java提供seter/getter如何理解?

set 或者 get ,有一定的用处,但实际使用时,还是要根据上下文,根据模块,来决定数据的修改和获取,不应当过于依赖set或get。

1.set:在OO当中,变量最好都是private,防止被误操作,那么如何修改private的变量呢? 写一个函数,专门针对private变量,每当想要修改这个变量的时候,就调用这个set函数。

2.get:既然这个变量是private,那么外部无法获取这个变量的值了,所以,再写一个函数,专门用于返回这个变量的值,然后在类的外部,就可以随意得到这个private的变量的值。
}
在其他类继承这些私有数据的时候,更新时可以加一些判断条件:
举个栗子:

 class Persion//声明变量{private String name;private String idStr;public Persion(){}//注意构造方法不需要加返回类型public Persion(String name, String idStr){this.name = name;this.idStr = idStr;}//setter和getter方法  注意返回类型public void setName(String name){this.name = name;}public String getName(){return name;}public void setIdStr(String idStr){idStr = idStr;}public String getIdStr(){return idStr;}//重写equals方法,提供自定义的相等标准public boolean equals(Object obj){//只有当obj是persion对象if(obj != null && obj instanceof Persion){Persion persionObj = (Persion)obj;//并且当前对象的IdStr与obj对象的IdStr相等才可判断两者相等if (this.getIdStr().equals(persionObj.getIdStr())){return true;}}return false;}}public class OverideEqualsRight{public static void main(String[] args){Persion p1 = new Persion("孙悟空", "123456");Persion p2 = new Persion("孙行者", "123456");Persion p3 = new Persion("孙悟饭", "1234");//p1和p2的IdStr相等所以输出trueSystem.out.println("p1是否等于p2:" + p1.equals(p2));//p1和p3的idStr不相等所以输出falseSystem.out.println("p1是否等于p3:" + p1.equals(p3));}}

设计银行项目中的注册银行用户基本信息的类,包括账户卡号、姓名、身份证号、联系电话、家庭住址。相关推荐

  1. react项目中使用阿里播放器播放视频,包括切换视频,播放定时跳转(兼容ios和andro),播放完成

    react项目中使用阿里播放器播放视频,包括切换视频,播放定时跳转(兼容ios和andro),播放完成 1.index.html引入阿里播放器的cdn <link rel="style ...

  2. 通讯录中每个通讯者的信息包括编号、姓名、性别、电话、E-mail地址;采用单链表结构存储

    通讯录中每个通讯者的信息包括编号.姓名.性别.电话.E-mail地址:采用单链表结构存储,实现以下功能: 1.通讯录的建立 2.通讯者信息的插入 3.通讯者信息的查询 4.通讯者信息的删除 5.通讯录 ...

  3. 项目中的防止同用户异地登录问题

    来公司两个月了, 进组也有1个多月,这是我的第一份工作, 也是第一个项目, 所以决定留下文字记录还是好些,由 于入组相对晚,我负责的也相对独立些 -- 系统管理, 首先要做的就是登录, 既然是应用系统 ...

  4. 微信小程序界面设计小程序中的WXSS(css)选择器课程-伪类-:focus 伪类

    小程序中的WXSS(css)选择器课程-伪类-:focus 伪类 微信小程序交流群:111733917 | 微信小程序从0基础到就业的课程:https://edu.csdn.net/topic/hua ...

  5. springboot项目中利用@WebFilter注解和@Bean配置类两种方式实现Filter过滤器

    过滤器(Filter) 过滤器实际上就是对web资源进行拦截,做一些处理后再交给下一个过滤器或servlet处理.通常都是用来拦截request进行处理的,也可以对返回的response进行拦截处理 ...

  6. 微信小程序界面设计小程序中的WXSS(css)选择器课程-伪类-:checked 伪类(不支持)

    小程序中的WXSS(css)选择器课程-伪类-:checked 伪类(不支持) 微信小程序交流群:111733917 | 微信小程序从0基础到就业的课程:https://edu.csdn.net/to ...

  7. 微信小程序界面设计小程序中的WXSS(css)选择器课程-伪类-:nth-child() 伪类

    小程序中的WXSS(css)选择器课程-伪类-:nth-child() 伪类 微信小程序交流群:111733917 | 微信小程序从0基础到就业的课程:https://edu.csdn.net/top ...

  8. 微信小程序界面设计小程序中的WXSS(css)选择器课程-伪类-:nth-last-child伪类

    小程序中的WXSS(css)选择器课程-伪类-:nth-last-child伪类 微信小程序交流群:111733917 | 微信小程序从0基础到就业的课程:https://edu.csdn.net/t ...

  9. 微信小程序界面设计小程序中的WXSS(css)选择器课程-伪类-:first-child 伪类

    小程序中的WXSS(css)选择器课程-伪类-:first-child 伪类 微信小程序交流群:111733917 | 微信小程序从0基础到就业的课程:https://edu.csdn.net/top ...

最新文章

  1. gdb汇编调试c程序
  2. SpringBoot + RabbitMQ (保证消息100%投递成功并被消费)
  3. 常见的Java WEB服务器
  4. 日志规范之slf4j整合Log4j以及Logback
  5. Orcale的存储过程
  6. 计算机设备的变化,这些年电脑桌上的变迁 篇一:设备的更迭
  7. 诗歌rails之Hacking ActiveRecord
  8. 关于wordpress站点地图代码调试
  9. 数据挖掘:模型选择——KNN
  10. python怎么读发音百度翻译-python爬虫--调用百度翻译进行文本翻译
  11. 排序算法-冒泡排序详细讲解(BubbleSort)
  12. TP5代码一键生成(萤火小程序新增功能开发辅助)及开发记录文档
  13. 【CS224N-2019】斯坦福CS224N-2019自然语言处理----作业详解
  14. 【元胞自动机】基于元胞自动机模拟社会力因素下的灾害人员疏散应急仿真附matlab代码
  15. 工程项目成本管控,不知从何下手?
  16. WinPE下修改本地系统注册表
  17. tp5.1使用json返回网址后出现的反斜杠问题
  18. 微信小程序获取位置信息基于腾讯地图实现
  19. 使用nvm管理node
  20. NRF52832之蓝牙MAC地址修改

热门文章

  1. [部分学校JAVAmooc答题解答] 16版.统计年龄
  2. rand在c语言那一个函数库,浅析C语言中的rand函数和srand函数(一)
  3. 这三个方法让你知道音频英译汉如何操作?
  4. 【Docker】Docker可视化管理工具Portainer
  5. WOJ1206-QQ军棋
  6. 水处理工艺流程图怎样绘制?分享水处理工艺流程图模板
  7. Qt lnk1158 无法运行rc.exe 解决方法
  8. 编译原理:素短语、短语、直接短语、句柄的基本概念
  9. 区块链游戏的正名之路:从庞氏骗局,到道具确权
  10. vue文档熟读之---深入了解组件