Java learning_Day3(上)

本人学习视频用的是马士兵的,也在这里献上

<链接:https://pan.baidu.com/s/1qKNGJNh0GgvlJnitTJGqgA>

提取码:fobs

内容

  • Java面向对象编程
  • 对象和类的概念
  • 构造方法(构造函数)

Java 面向对象编程

  • 面向对象的基本思想是,从现实世界中客观存在的事物出发来构造软件系统,并在系统的构造中尽可能运用人类的自然思维方式。
  • 面向对象更加强调运用人类在日常的思维逻辑中经常采用的思想方法与原则,如抽象、分类、继承、聚合、多态等。

对象和类的概念

  • 对象通过“属性(attribute)”和“方法(method)”来分别对应事物所具有的静态属性和动态属性。
  • 类是用于描述同一类型的对象的一个抽象概念,类中定义了这一类对象所应具有的静态和动态属性。
  • 类可以看成一类对象的模板,对象可以看成改类的一个具体实例。

关联关系

  • 往往一个方法的参数是另一个类的对象
  • 关系不紧密

继承关系

  • 满足XX是XX(XX is a kind of XX)

聚合关系

  • 整体和部分
  • 聚合又可以细分为聚集和组合
    • 聚集关系中的部分可以隶属于多个整体,充当不同的对象。
    • 组合关系的部分隶属于一个整体,充当单一的对象。

实现关系

  • 子类对于父类的特定实现方法

多态

具体可以参考:Java_Day4(下)

创建一个简单的对象,拥有属性和方法

public class Dog {
//创建狗这个类 char furColor;
char voice;
int height;
int weight; //狗拥有抓老鼠这个方法
public void catchMouse(Mouse mouse) {
//catch mouse
mouse.scream(); //老鼠有发出尖叫这个动作(方法)
} public static void main(String[] args) {
Dog dog = new Dog(); //创建狗这个对象
Mouse mouse = new Mouse(); //创建老鼠这个对象
dog.catchMouse(mouse); //狗拿耗子
}
}

类的定义

  • 类的定义主要由两方面组成

    1. 成员变量
    2. 方法

      1 声明成员变量的格式为: [<modifiers>] type <arrt_name>[=defaultValue];

成员变量

  • 成员变量可以使用Java语言中任何一种数据类型(包括基本类型和引用类型)
  • 在定义成员变量是可以对其初始化,如果不对其初始化,Java使用默认的值对其初始化,如下表。
成员变量类型 取值
byte 0
short 0
int 0
long 0L
char '\u0000'
float 0.0F
double 0.0D
boolean false
所有引用类型 NULL

对象的创建和使用

  • 必须使用new关键字创建对象。
  • 使用对象(引用).成员变量来引用对象的成员变量。
  • 使用对象(引用).方法(参数列表)来调用对象的方法。
  • 同一类的每个对象有不同的成员变量存储空间。
  • 同一类的每个对象共享该类的方法。

构造方法(构造函数)

  • 使用new+构造方法创建一个新的对象。
  • 构造函数是定义在Java类中的一个用来初始化对象的函数。
  • 构造函数与类同名且没有返回值。
public class Person {
int id;
int age; Person(int n, int i) { //Person类的构造函数
id = n;
age = i;
}
}

创建对象时,使用构造函数初始化对象的成员变量。

class Test {

	public static void main(String[] args) {
Person tom = new Person(1, 25);
Person john = new Person(2, 27);
}
}

当没有指定构造函数时,编译器为类自动添加形如 类名() { } 的无参数构造函数

注意:一旦手动添加了构造函数,编译器将不再默认添加一个无参数构造函数,此时初始化对应的无参数对象编译器将会报错

构造函数对对象初始化后,如何改变对象存储的值? 详见:<file:///F:\github\JavaFile\JavaBasic\JavaSEBasic\Day3(中)_改变引用数据类型的值.md>

JavaDay3(上)的更多相关文章

  1. Asp.Net Mvc 使用WebUploader 多图片上传

    来博客园有一个月了,哈哈.在这里学到了很多东西.今天也来试着分享一下学到的东西.希望能和大家做朋友共同进步. 最近由于项目需要上传多张图片,对于我这只菜鸟来说,以前上传图片都是直接拖得控件啊,而且还是 ...

  2. [APUE]进程控制(上)

    一.进程标识 进程ID 0是调度进程,常常被称为交换进程(swapper).该进程并不执行任何磁盘上的程序--它是内核的一部分,因此也被称为系统进程.进程ID 1是init进程,在自举(bootstr ...

  3. 关于解决python线上问题的几种有效技术

    工作后好久没上博客园了,虽然不是很忙,但也没学生时代闲了.今天上博客园,发现好多的文章都是年终总结,想想是不是自己也应该总结下,不过现在还没想好,等想好了再写吧.今天写写自己在工作后用到的技术干货,争 ...

  4. PHP搭建大文件切割分块上传功能

    背景 在网站开发中,文件上传是很常见的一个功能.相信很多人都会遇到这种情况,想传一个文件上去,然后网页提示"该文件过大".因为一般情况下,我们都需要对上传的文件大小做限制,防止出现 ...

  5. 深入浅出Redis-redis底层数据结构(上)

    1.概述 相信使用过Redis 的各位同学都很清楚,Redis 是一个基于键值对(key-value)的分布式存储系统,与Memcached类似,却优于Memcached的一个高性能的key-valu ...

  6. jquery.uploadify文件上传组件

    1.jquery.uploadify简介 在ASP.NET中上传的控件有很多,比如.NET自带的FileUpload,以及SWFUpload,Uploadify等等,尤其后面两个控件的用户体验比较好, ...

  7. 在传统.NET Framework 上运行ASP.NET Core项目

    新的项目我们想用ASP.NET Core来开发,但是苦于我们历史的遗产很多,比如<使用 JavaScriptService 在.NET Core 里实现DES加密算法>,我们要估计等到.N ...

  8. .NET Core & ASP.NET Core 1.0在Redhat峰会上正式发布

    众所周知,Red Hat和微软正在努力使.NET Core成为Red Hat企业版Linux (RHEL)系统上的一流开发平台选项.这个团队已经一起工作好几个月了,RHEL对.NET有许多需求.今天在 ...

  9. Windows 7上执行Cake 报错原因是Powershell 版本问题

    在Windows 7 SP1 电脑上执行Cake的的例子 http://cakebuild.net/docs/tutorials/getting-started ,运行./Build.ps1 报下面的 ...

随机推荐

  1. Windows环境下Nginx配置本地虚拟域名

    进入conf文件夹,新建servers文件夹: 将内部的server配置段提取单独放在一个文件里,存到了conf/servers下,以方便配置多个虚拟主机. 并在nginx.conf里http配置段内 ...

  2. Nginx 核心配置

    nginx的核心配置在conf/nginx.conf中. 全局配置块 user root; #运行worker进程的账户,user   用户   [组],默认以nobody账户运行 worker_pr ...

  3. leaflet结合turf.js实现多边形分割(附源码下载)

    前言 leaflet 入门开发系列环境知识点了解: leaflet api文档介绍,详细介绍 leaflet 每个类的函数以及属性等等 leaflet 在线例子 leaflet 插件,leaflet ...

  4. 泡泡后台Couchbase缓存使用经验分享

    一.导读 爱奇艺的社交业务“泡泡”,拥有日活用户6千万+,后台系统每日高峰期间接口QPS可以达到80K+,与视频业务的主要区别是泡泡业务更多地引入了与用户互动相关的数据,读.写的量均很大.无论是庞大的 ...

  5. CHECK INDEX OF TABLE

    SELECT INDEX_NAME,COLUMN_NAME FROM ALL_IND_COLUMNS WHERE table_name = '';

  6. PMP--1.5 项目管理描述

    项目所处的环境将影响每个项目管理过程的实施方式以及项目制约因素的优先顺序. 一. 管理一个项目的过程 ​管理一个项目通常包括(但不限于): 1. 识别项目需求 2. 处理相关方的各种需要.关注和期望 ...

  7. 使用vscode阅读C代码outline不显示问题

    1 问题:使用vscode code 阅读C代码 outline 显示No symbols found in document 'xxxx' 2 参考网上解决方法,进行如下操作 2.1  安装C/C+ ...

  8. springcloud服务已经关闭但是Eureka显示服务状态一直为UP

    问题: 最近遇到一个很奇怪的问题,就是使用springcloud的时候,服务明明已经停止,但是在eureka中一直显示此服务状态为UP,这样就导致了请求再次过来的时候被分发到已经停止的服务上,其实这是 ...

  9. Jetty配置虚拟目录,实现把web项目发布到自定义目录,指定指定上下文访问;jetty编码修改

    2019-12-31     17:28:38 一般只需要把Java站点文件夹或*.war文件拷贝到Web Server的webapps文件夹下,即可启动运行该站点,但更多时候,我们并不想拷贝站点,而 ...

  10. 洛谷P3719 [AHOI2017初中组]rexp

    洛谷P3719 [AHOI2017初中组]rexp 题目背景 以下为不影响题意的简化版题目. 题目描述 给出一个由(,),|,a组成的序列,求化简后有多少个a. 化简规则: 1.形如aa...a|aa ...