java学习(类和对象)
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学习(类和对象)相关推荐
- java学习--类与对象
文章目录 java学习--类与对象 类的定义与对象的使用 类的私有成员的使用 java学习–类与对象 类的定义与对象的使用 类的定义与对象的使用 类的定义步骤: public 类名: //定义成员变量 ...
- java学习---类与对象
java学习心得3 文章目录 java学习心得3 类 对象 关键字this 总结与反思 类 一 定义一个Java的类 属性 : 将数据存储在变量中 1成员变量 使用成员变量:对象名.变量名 使用成员方 ...
- Java学习——类和对象(上)
目录 一.类和对象 1.类的特点 2.类和对象的关系 3.总结 二.类的定义 1.类的定义步骤 2.代码示例 三.对象的使用 1.创建对象 2.使用对象 3.单个对象(代码) 4.多个对象(代码) 四 ...
- Java 学习 类与对象讲解
类与对象的概念 : 什么是类 什么是对象 类与对象指的是一种编程思想,其中类是类别的概念,对象是这个类别中一个具体的个例 比如: 学生类对应 某一名具体的学生 计算机类 对应我正在使用的这台计算机 ...
- Java学习 --- 类与对象
目录 一.问题需求 二.类与对象关系图 三.类与对象的关系 四.什么是类 五.什么是对象 六.对象的内存分布图 一.问题需求 有两只猫,第一只叫小白,年龄:1岁,颜色:白色,第二只叫小黑,年龄:2岁, ...
- Java 学习 类和对象练习 设计一个类Armor护甲 继承Item类并且额外提供一个属性ac: 护甲等级 int类型 实例化出两件护甲 名称 价格 护甲等级 布甲 300 15 锁子甲 500 40
设计一个类Armor护甲 继承Item类,并且额外提供一个属性ac: 护甲等级 int类型 实例化出两件护甲 名称 价格 护甲等级 布甲 300 15 ...
- java/03/类与对象,深入分析类与对象(权限修饰,构造方法和简单java类),数组的定义及使用
java/03/类与对象,深入分析类与对象(权限修饰,构造方法和简单java类),数组的定义及使用 七十年代,IBM的Smalltalk语言最先推广面向对象,后来C语言变为C++,后来C++又产生了J ...
- Java学习-类的隐藏机制(封装性)
Java学习-类的隐藏机制(封装性) 1.封装的含义 2.类的setXXX 和 getXXX 3.this关键字 4.总结 1.封装的含义 封装(encapsulation)是面向对象的三要素之一(其 ...
- java面向对象-类和对象
Java面向对象笔记 文章目录 Java面向对象笔记 java面向对象 类和对象 什么是类 定义 创建和使用 公式 构造方法 什么是构造方 怎么定义和使用构造方法 实列 This关键字 什么是成员变量 ...
- java学习之类与对象篇——奥特曼打小怪兽
java学习之类与对象篇--奥特曼打小怪兽 初次接触Java,我们就被告知Java是一种面向对象的程序设计语言,那么什么是面向对象呢?什么又是对象呢?带着这些个疑问,我们开始了Java学习之旅. 1. ...
最新文章
- 导入表编程-枚举导入表
- NeurIPS 2018 | 如何用循环关系网络机智地解决数独类关系推理任务?
- 在Linq to Sql中管理并发更新时的冲突(3):使用记录的时间戳进行检测
- Android中BroadCastReceiver使用(整理)
- linux数字雨代码解释,linux提权 漏洞合集 linux-kernel-exploits
- 【Android源码】Activity如何加载布局
- 三维旋转矩阵_第三讲:三维空间的刚体运动
- 了解计算机网络拓扑结构,认识计算机网络拓扑结构
- 2021年软考DHCP技术点+配置
- 提高效率: Atom ,介绍几个实用插件,组合使用
- java同步锁实例_Java同步锁全息详解
- win10系统steam登陆计算机授权,Steam怎样取消电脑授权 设置里面有
- 在哪下载公司考勤刷卡特殊情况说明Excel模板
- 含8的数字的个数 (10分)
- ubuntu18.04突然关机重启后显卡驱动失效
- 新一代AI人工智能机器学习研讨会即将在杭州举办,特聘叶梓老师主讲!
- LumaQQ源码,注解.下载的用户看一下.
- Jfinal学习(一)
- 文件恢复软件哪个最好用?5 款最佳照片文件恢复软件
- Amcharts--Chart with scroller