1.今日导师双选,排名靠前但被拒三次、意难平。
2.简历还在投递中,面试时更注重本科项目经历。
3.研究生阶段,计算机学术?代码能力?哪个重要?
4.循环《可能否》,期待变强。。。

一、简介

使用面向对象的思想进行程序设计和开发,并不会简化代码,只会使代码量变多,但是该思想更接近现实逻辑。
java是一门面向对象的语言,面向对象是指当我们需要做某一件事情的时候,不应该想着自己如何做,那叫面向过程(C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题),第一想法是找会做件事情的人来完成,这就叫做面向对象。

面向对象注重的是对象,也就是参与过程所涉及到的主体。是通过逻辑将一个个功能实现连接起来,更适合合作者开发

面向过程: 1.把冰箱打开 2. 把东西放入 3. 冰箱关起来
面向对象: 打开冰箱,储存,关闭都是对冰箱的操作,是冰箱被动的行为。冰箱就是一个对象,所以只要操作冰箱所具备的功能,都要定义在冰箱中(即类)。

二、类与对象的理解

**类就是一类对象的统称。对象就是这一类具体化的一个实例。**类可以比喻为一个一个的模板,里面可能会含有许多属性或者功能。而按照模板实例化产生的叫对象。一个模板能够实例化多个对象。

对象


类的定义(c的结构体相似)



内存布局

注意
1)new 关键字用于创建一个对象的实例。 其中这个对象实例又叫属性或成员变量或字段。
2) 使用 . 来访问对象中的属性和方法。
3)同一个类可以创建多个实例。

类的成员

**类的成员可以包含以下:字段、方法、代码块、内部类和接口等。**此处重点介绍前面三个。

字段/属性/成员变量

在类中、而方法外部定义的变量称为 “字段” 或 “属性” 或 “成员变量”(三种称呼都可以, 一般不会严格区分)

null 在 Java 中为 “空引用”, 表示不引用任何对象. 类似于 C 语言中的空指针. 如果对 null 进行 . 操作就会引发异常。
因此,字段就地初始化:

public class Person {String name = "张三";int age = 18;
}
class Test {public static void main(String[] args) {Person person = new Person();System.out.println(person.name);System.out.println(person.age);}
}
// 执行结果
张三
18

方法 (c语言是不能在结构体中定义函数的)

用于描述一个对象的具体行为叫做方法。

public class Person {int age = 18;String name = "张三";public void show() { //show方法System.out.println("我叫" + name + ", 今年" + age + "岁");}
}
class Test {public static void main(String[] args) {Person person = new Person();person.show();}
}
// 执行结果
我叫张三, 今年18岁

构造方法


构造方法是一种特殊方法, 使用关键字new实例化新对象时会被自动调用, 用于完成初始化操作。

  • new 执行过程:

1)为对象分配内存空间
2)调用对象的构造方法

  • 语法规则:

1)方法名称必须与类名称相同。
2)构造方法没有返回值类型声明。
3) 每一个类中一定至少存在一个构造方法(如果没有明确定义,则系统自动生成一个无参构造方法)

  • 注意事项:

1)如果类中没有提供任何的构造函数,那么编译器会默认生成一个不带有参数的构造函数
2)若类中定义了构造方法,则默认的无参构造将不再生成,如果再需要调用无参的构造方法则需要手动写一个。
3)构造方法支持重载,规则和普通方法的重载一致。(对返回值不作要求,方法名相同,参数不同可包括参数个数不同或参数类型不同)

  • 示例
class Person{private double age;private String name;public Person(){System.out.println("这是一个无参的构造方法");}public Person(double age, String name){this.age = age;this.name = name;System.out.println("这是一个有参的构造方法");}public void show(){ System.out.println("name: "+name+" age: "+age); }
}
public class Main{public static void main(String[] args){Person person1 = new Person();Person person2 = new Person(13, "张三");person2.show();}
}
// 结果为:
// 这是一个无参的构造方法
// 这是一个有参的构造方法
// name:张三 age:13

构造方法不仅仅可以构造对象,同时也可以帮助我们进行成员变量的初始化
上述代码里面的构造方法其实构成了重载(方法名相同、参数列表不同、返回值不做要求)

代码块

  • 分类

根据代码块定义的位置以及关键字,又可分为以下四种:

1)普通代码块(又叫本地代码块,了解);2) 构造代码块;3) 静态代码块;4)同步代码块(后续讲解多线程部分再谈)
普通代码块:定义在方法中的代码块。
构造块:定义在类中的代码块(不加修饰符)。也叫:实例代码块。构造代码块一般用于初始化实例成员变量。
静态代码块:使用static定义的代码块。一般用于初始化静态成员属性。

  • 实例代码
class Person{private double age;private String name;public Person(){System.out.println("这是一个无参的构造方法");}// 实例代码块{this.name = "Yb";this.age = 15;System.out.println("构造代码块");} // 静态代码块static{// 不能用 this// this.age = 15; 会报错System.out.println("静态代码块");}
}
public class Main{public static void main(String[] args){Person person1 = new Person();Person person2 = new Person();}
}
// 结果为:
/**
静态代码块
构造代码块
这是一个无参的构造函数
实例代码块
这是一个无参的构造函数
*/

代码块中的重点是主要了解实例代码块、静态代码块、构造方法的运行顺序。总结:先运行的是静态代码块,再运行实例代码块(构造代码块),最后运行构造方法。静态代码块内的只运行一次。

java学习(类和对象)相关推荐

  1. java学习--类与对象

    文章目录 java学习--类与对象 类的定义与对象的使用 类的私有成员的使用 java学习–类与对象 类的定义与对象的使用 类的定义与对象的使用 类的定义步骤: public 类名: //定义成员变量 ...

  2. java学习---类与对象

    java学习心得3 文章目录 java学习心得3 类 对象 关键字this 总结与反思 类 一 定义一个Java的类 属性 : 将数据存储在变量中 1成员变量 使用成员变量:对象名.变量名 使用成员方 ...

  3. Java学习——类和对象(上)

    目录 一.类和对象 1.类的特点 2.类和对象的关系 3.总结 二.类的定义 1.类的定义步骤 2.代码示例 三.对象的使用 1.创建对象 2.使用对象 3.单个对象(代码) 4.多个对象(代码) 四 ...

  4. Java 学习 类与对象讲解

    类与对象的概念 : 什么是类 什么是对象 类与对象指的是一种编程思想,其中类是类别的概念,对象是这个类别中一个具体的个例 比如: 学生类对应 某一名具体的学生   计算机类 对应我正在使用的这台计算机 ...

  5. Java学习 --- 类与对象

    目录 一.问题需求 二.类与对象关系图 三.类与对象的关系 四.什么是类 五.什么是对象 六.对象的内存分布图 一.问题需求 有两只猫,第一只叫小白,年龄:1岁,颜色:白色,第二只叫小黑,年龄:2岁, ...

  6. Java 学习 类和对象练习 设计一个类Armor护甲 继承Item类并且额外提供一个属性ac: 护甲等级 int类型 实例化出两件护甲 名称 价格 护甲等级 布甲 300 15 锁子甲 500 40

    设计一个类Armor护甲     继承Item类,并且额外提供一个属性ac: 护甲等级 int类型          实例化出两件护甲     名称 价格 护甲等级     布甲 300 15    ...

  7. java/03/类与对象,深入分析类与对象(权限修饰,构造方法和简单java类),数组的定义及使用

    java/03/类与对象,深入分析类与对象(权限修饰,构造方法和简单java类),数组的定义及使用 七十年代,IBM的Smalltalk语言最先推广面向对象,后来C语言变为C++,后来C++又产生了J ...

  8. Java学习-类的隐藏机制(封装性)

    Java学习-类的隐藏机制(封装性) 1.封装的含义 2.类的setXXX 和 getXXX 3.this关键字 4.总结 1.封装的含义 封装(encapsulation)是面向对象的三要素之一(其 ...

  9. java面向对象-类和对象

    Java面向对象笔记 文章目录 Java面向对象笔记 java面向对象 类和对象 什么是类 定义 创建和使用 公式 构造方法 什么是构造方 怎么定义和使用构造方法 实列 This关键字 什么是成员变量 ...

  10. java学习之类与对象篇——奥特曼打小怪兽

    java学习之类与对象篇--奥特曼打小怪兽 初次接触Java,我们就被告知Java是一种面向对象的程序设计语言,那么什么是面向对象呢?什么又是对象呢?带着这些个疑问,我们开始了Java学习之旅. 1. ...

最新文章

  1. 导入表编程-枚举导入表
  2. NeurIPS 2018 | 如何用循环关系网络机智地解决数独类关系推理任务?
  3. 在Linq to Sql中管理并发更新时的冲突(3):使用记录的时间戳进行检测
  4. Android中BroadCastReceiver使用(整理)
  5. linux数字雨代码解释,linux提权 漏洞合集 linux-kernel-exploits
  6. 【Android源码】Activity如何加载布局
  7. 三维旋转矩阵_第三讲:三维空间的刚体运动
  8. 了解计算机网络拓扑结构,认识计算机网络拓扑结构
  9. 2021年软考DHCP技术点+配置
  10. 提高效率: Atom ,介绍几个实用插件,组合使用
  11. java同步锁实例_Java同步锁全息详解
  12. win10系统steam登陆计算机授权,Steam怎样取消电脑授权 设置里面有
  13. 在哪下载公司考勤刷卡特殊情况说明Excel模板
  14. 含8的数字的个数 (10分)
  15. ubuntu18.04突然关机重启后显卡驱动失效
  16. 新一代AI人工智能机器学习研讨会即将在杭州举办,特聘叶梓老师主讲!
  17. LumaQQ源码,注解.下载的用户看一下.
  18. Jfinal学习(一)
  19. 文件恢复软件哪个最好用?5 款最佳照片文件恢复软件
  20. Amcharts--Chart with scroller

热门文章

  1. Win10 曝激活失效问题,专业版突变家庭版;GitHub 项目库破亿
  2. Boss直聘招聘信息爬取
  3. 【二分图匹配】【CSTC2000】丘比特的烦恼
  4. C语言:L1-054 福到了 (15 分)
  5. 自制智能手机电话APP
  6. 蓝桥杯 算法训练 ALGO-932低阶行列式计算 python解法
  7. 【网络安全】网络安全的重要性你知道吗?
  8. 史上最通俗易懂的理解云计算
  9. 谷歌浏览器截全图小技巧
  10. https://是什么?HTTPS和HTTP有什么不一样?如何申请SSL(HTTPS)证书?