02-Java中的对象和类
面向对象:
程序由对象构成,每个对象包含对用户公开的特定功能部分(public)和隐藏实现部分(private)。
类:
构造对象的模板
对象:
对象的行为 --- 可以对对象施加的操作(方法)
对象的状态 --- 对象的域的值
对象的表示 --- 行为相同,但状态不同的对象(equals()方法)
类之间的关系:
依赖 --- 一个类中使用另一个类的对象
聚合 --- 两个或两个以上的类组合成一个新的类
继承 --- 一个类是另一个类的子类
更改器和访问器方法:
JavaBean中是setter和getter方法。
更改器用于更改目前对象的状态(对象域的值)
访问器用于查看目前对象的状态(对象域的值)
用户自定义类:
class 类名 {
字段;
方法;
}
构造器:
public 类名 (参数){
语句;
}
1.构造器和类同名
2.每个类可以有一个以上的构造器
3.构造器可以有0个,1个,或多个参数
4.构造器没有返回值
5.构造器总是伴随着new关键字一起使用
隐式参数和显示参数:
当字段和方法的参数名相同时,方法中默认使用的参数,使用字段时需要使用this.字段名区别于方法参数
封装(setter and getter 方法):
使得对象的字段不能直接访问,提高安全性
一个私有的数据域
一个公共的域访问器
一个公共的域更改器
私有方法:
private 修饰的方法,对外部进行隐藏,不让外部对象直接访问,由类的方法自己调用,可以随意修改实现的方式。
final实例域:
final修饰的字段,只可以赋值一次,当对象初始化之后便不能在修改。
静态域和静态方法:
static关键字修饰的字段和方法,直接由类名访问,属于类所有。
静态常量:
static final修饰的变量
静态工厂方法:
使用方法直接获取某个类的对象。
重载:
方法名相同,参数列表不同
对象的初始化:
1.默认初始化:基本数据类型中,数值型赋值为0或0.0,boolean类型赋值为false ,char类型赋值为/u0000,引用数据类型赋值为null
2.显示初始化:在构造器中显示的给字段赋值
3.调用另一个构造器:使用this(参数列表)来调用,this()方法必须位于构造方法的第一行
4.初始化块:在类成员位置放置一个代码块{},其中对类的字段进行初始化
包:
为啥使用包:确保类名的唯一性
类的导入: import 包名.类名
静态导入:导入包中的静态方法和静态变量等静态资源: import static 包名.类名.静态资源
将包放入类中:package 包名
包的作用域:
public修饰的方法和字段 ,所有的类都可以使用
private修饰的方法和字段 ,只有本类可以调用
protect修饰的方法和字段 , 同一个包中的类和继承的子类可以使用
无修饰符的,只有同一个包中的类可以访问
类的设计技巧:
1.一定要保证数据私有
2.一定要对数据初始化
3.不要在类中使用过多的基本数据类型
4.不是所有的域都需要getter setter方法
5.可以将过多功能的类分解成多个类
6.类名和方法名尽量见名知意
7.优先使用final修饰的类:不可变类。
02-Java中的对象和类的更多相关文章
- 关于Java中的对象、类、抽象类、接口、继承之间的联系
关于Java中的对象.类.抽象类.接口.继承之间的联系: 导读: 寒假学习JavaSE基础,其中的概念属实比较多,关联性也比较大,再次将相关的知识点复习一些,并理顺其中的关系. 正文: 举个例子:如果 ...
- java中的对象和类
1.类:类是一个模板,它描述一类对象的行为和状态. 一个类可以包含以下类型变量: 局部变量:在方法.构造方法或者语句块中定义的变量被称为局部变量.变量声明和初始化都是在方法中,方法结束后,变量就会自动 ...
- java中的对象、类、包、模块、组件、容器、框架、架构的概念入门
在Java中有那么一些概念:对象.类.包.模块.组件.容器.框架.这些概念都有一个共同的特点,就是[容纳]. 对象(Object) 在Java的世界里,对象是通过属性和方法来分别对应事务所具有的静态属 ...
- Java中的对象、类、抽象类、接口的理解
1.对象 对象是个具体的东西,有着明确的属性特征和行为特征. 例如:你手上牵着的女朋友或男朋友就是个具体的对象. 如图中的苏格兰折耳猫,特征是耳朵向下呈折叠状,有着具体的颜色(你看到的颜色),并且和其 ...
- java中的对象,类。与 方法的重载。
对象: 一切皆为对象.对象包括两部分内容:属性(名词形容词),行为(动词).对象和对象之间是有关系的: 派生,关联,依赖. 类: 对同一类别的众多对象的一种抽象.类,还是用来生成对象的一种模板,对象是 ...
- Java中直接输出一个类的对象
例如 package com.atguigu.java.fanshe; public class Person { String name; private int age; public Strin ...
- 将java中Map对象转为有相同属性的类对象(json作为中间转换)
java中Map对象转为有相同属性的类对象(json作为中间转换) 准备好json转换工具类 public class JsonUtil { private static ObjectMapper o ...
- 浅谈Java中的对象和引用
浅谈Java中的对象和对象引用 在Java中,有一组名词经常一起出现,它们就是“对象和对象引用”,很多朋友在初学Java的时候可能经常会混淆这2个概念,觉得它们是一回事,事实上则不然.今天我们就来一起 ...
- 【译】Java中的对象序列化
前言 好久没翻译simple java了,睡前来一篇. 译文链接: http://www.programcreek.com/2014/01/java-serialization/ 什么是对象序列化 在 ...
- java中直接打印对象
java中直接打印对象,会调用对象.toString()方法.如果没有重写toString()方法会输出"类名+@+hasCode"值,hasCode是一个十六进制数 //没有重写 ...
随机推荐
- weblogic 控制台访问速度很慢的解决方案
实际是JVM在Linux下的bug 他想调用一个随机函数 但取不到 暂时的解决办法是 1)较好的解决办法: 在Weblogic启动参数里添加 “- Djava.security.egd=file:/d ...
- Virtio: An I/O virtualization framework for Linux
The Linux kernel supports a variety of virtualization schemes, and that's likely to grow as virtuali ...
- 【腾讯Bugly干货分享】经典随机Crash之一:线程安全
本文作者:鲁可--腾讯SNG专项测试组 测试工程师 背景 Android QQ 在2016下半年连着好几个版本二灰 Crash 率都很高,如果说有新需求,一灰的 Crash 率高,还能找点理由,可是开 ...
- Android开发 - 掌握ConstraintLayout(十一)复杂动画!如此简单!
介绍 本系列我们已经介绍了ConstraintLayout的基本用法.学习到这里,相信你已经熟悉ConstraintLayout的基本使用了,如果你对它的用法还不了解,建议您先阅读我之前的文章. 使用 ...
- 吴恩达机器学习笔记34-模型选择和交叉验证集(Model Selection and Train_Validation_Test Sets)
假设我们要在10 个不同次数的二项式模型之间进行选择: 显然越高次数的多项式模型越能够适应我们的训练数据集,但是适应训练数据集并不代表着能推广至一般情况,我们应该选择一个更能适应一般情况的模型.我们需 ...
- 【详记MySql问题大全集】一、安装MySql
最近公司要从SqlServer转到MySql,期间在安装环境和数据迁移的过程中,遇到了一些不大不小问题,比如怎么重置密码.怎么设置大小写敏感等等. 这些问题都比较细比较杂,这边解决完可能过几天就忘了, ...
- springboot2.0jar包启动异常
今天碰到一个异常: 08:44:07.214 [main] ERROR org.springframework.boot.SpringApplication - Application run fai ...
- android自动化必备之界面元素
包名&类名 packageName(包名) 应用的身份标识,系统通过包名识别不同的应用,如两个相同包名的应用在安装时候会覆盖 activityName(类名) Activity:android ...
- Spring Boot 2.x 启动全过程源码分析(上)入口类剖析
Spring Boot 的应用教程我们已经分享过很多了,今天来通过源码来分析下它的启动过程,探究下 Spring Boot 为什么这么简便的奥秘. 本篇基于 Spring Boot 2.0.3 版本进 ...
- 利用 ELK 搭建 Docker 容器化应用日志中心
利用 ELK 搭建 Docker 容器化应用日志中心 概述 应用一旦容器化以后,需要考虑的就是如何采集位于 Docker 容器中的应用程序的打印日志供运维分析.典型的比如SpringBoot应用的日志 ...