【类与对象】--------java基础学习第六天
类与对象
1. 对于面向对象的开发来讲也分为三个过程:
OOA(面向对象分析)
OOD(面向对象设计)
OOP(面向对象编程)
2. 面向对象的基本特征
2.1. 封装:保护内部操作(属性,方法)不被破坏。
- 方法就是一种封装
- 关键字private(私有化)也是一种封装
♧使用了该关键字,本类当中仍然可以随意访问,但超出本类就不能直接访问了。
♧间接访问private修饰的成员变量,可以设置一组getter/setter 方法。
♧对于getter来说,不能有参数,返回值类型与返回值一致。
♧对于setter来说,不能有返回值,参数类型与返回值类型一致。
♧This用来区分成员变量和局部变量
2.2. 继承:在原本的基础上继续进行扩充。
2.3. 多态:在一个指定范围之内进行概念转换
3. 类与对象的基本概念
类:是一组相关属性和方法的集合,可以看成一类事物的模板。也就是说,类就是将具有共同特点的事物,抽象成为一个类。(例如:人,猫)
- 属性(成员变量):该事物的状态信息。(例如:学生有名字,年龄,联系方式等)
- 方法(成员方法):事物能够做什么,属于动作。(例如:学生能吃饭,睡觉,学习)
示例代码:

1 class Student{
2 String name;
3 int age;
4
5 public void eat(){
6 System.out.println("eat food");
7 }
8 ]

对象:一类事物的具体表现。(例如:学生,波斯猫)
示例代码:
Student s = new Student(); //其中s为具体的对象
System.out.println(s.name); //调用该该对象的属性
s.eat(); //调用该该对象的方法
类与对象之间的关系:
类是抽象的,是事物的描述
对象是具体的,是事物的实例
类是对象的模板,对象是类的实体
4.对象调用在内存中的示意图

5.对象作为参数传递(传递的是地址)
当一个对象作为参数传递时,实际上传进去的是对象的地址值。
6.局部变量与成员变量的区别
定义位置:
成员变量:在方法内部的变量
局部变量:在方法外部定义的变量
内存位置:
局部变量:存在于栈内存中
成员变量:存在于堆内存中
默认值区别:
局部变量:没有默认值
成员变量:有默认值
作用域不同:
局部变量:只在小范围内使用
成员变量:在当前类中都能使用
生命周期不同:
局部变量在方法被调用的时候产生,在方法调用结束时死亡
成员变量在对象创建的时候产生,对象被回收的时候死亡。
7.构造方法
作用:用来创建对象,并且快速赋值
格式:

1 class Student{
2 String name;
3 int age;
4
5 public Student(){ //无参的构造方法
6
7 }
8 public Student(String name,int age){ //全参构造方法
9 this.name = name;
10 this.age = age;
11 }
12
13 }

特点(注意事项):
♧构造方法的名称与所在的类名称完全一样
♧构造方法不写返回值类型,连void也不写
♧构造方法不能return一个具体的返回值
♧如果没有编写任何构造方法,那么编译器将会默认一个无参的构造方法
♧一旦编写了一个构造方法,那么默认的构造方法将会被覆盖
♧构造方法也是可以进行重载的
8.构建一个完整的类
通常有四部分组成:
♧用private修饰的成员变量
♧为每一个成员变量生成getter setter方法
♧编写一个无参的构造方法
♧编写一个全参的构造方法
代码示例:

class Student1 {
private String name;
private int age;
public Student1(){
}
public Student1(String name ,int age){
this.name = name;
this.age = age;
}
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
public int getAge(){
return age;
}
public void SetAge(int age){
this.age = age;
}
public void eat(){
System.out.println("eat food");
}
public void sleep(){
System.out.println("sleep");
}
public void study(){
System.out.println("study!");
}
}

注:定义一个类时,不能直接写输出语句。
【类与对象】--------java基础学习第六天的更多相关文章
- 类、对象(java基础知识六)
1.Java约定俗成 java约定俗成 1,类名接口名 一个单词首字母大写,多个单词每个单词首字母都大写 2,方法名和变量名 一个单词全部小写,多个单词从第二个单词首字母大写 建议:如果能用英语尽量用 ...
- Java类与对象的基础学习
1. 请输入并运行以下代码,得到什么结果? public class Test{ public static void main(String args[]){ Foo obj1=new Foo(); ...
- Scanner,Random,匿名对象-------------------java基础学习第七天
1.API 2.Scanner 功能:通过键盘输入数据到程序中. 引用类型的一般使用步骤: 导包 Import 包路径.类名称 只有java.lang 包写的类不需要导包,其他都需要 2.创建 类名称 ...
- Java基础学习心得笔记
对于很多只会C语言的初学者而言,面对java基础语法学习,反而感觉很难,其实其中最大的问题不是语法难,而是一种编程思想的转变.面向过程就是把你的代码封装成函数,然后依次去做一件事情,面向过程是把你要做 ...
- 转载-java基础学习汇总
共2页: 1 2 下一页 Java制作证书的工具keytool用法总结 孤傲苍狼 2014-06-24 11:03 阅读:25751 评论:3 Java基础学习总结——Java对象的序列化和 ...
- JAVA基础学习-集合三-Map、HashMap,TreeMap与常用API
森林森 一份耕耘,一份收获 博客园 首页 新随笔 联系 管理 订阅 随笔- 397 文章- 0 评论- 78 JAVA基础学习day16--集合三-Map.HashMap,TreeMap与常用A ...
- 尚学堂JAVA基础学习笔记
目录 尚学堂JAVA基础学习笔记 写在前面 第1章 JAVA入门 第2章 数据类型和运算符 第3章 控制语句 第4章 Java面向对象基础 1. 面向对象基础 2. 面向对象的内存分析 3. 构造方法 ...
- [转帖]java基础学习总结——多态(动态绑定)
https://www.cnblogs.com/xdp-gacl/p/3644035.html 多态的概念 java基础学习总结——多态(动态绑定) 一.面向对象最核心的机制——动态绑定,也叫多态
- Java基础学习(2)
Java基础学习(二) 面向对象 对象:客观存在的事物 面向对象:人具体关注的事物的某些信息 类:是模子,确定对象会拥有的特征(属性)和行为(方法) 对象的属性:对象具有的各种特征 对象的方法:对象能 ...
随机推荐
- [Kubernetes]关于 Kubernetes ,你想要的,都在这儿了
陆陆续续,关于 Kubernetes 写了有 20+ 篇文章了. 今天这篇文章来一个整合,从实践到理论,可以按需查看(我是按照博客发表时间来排序的,如果后续有想要更新的内容,也会及时更新到这篇文章中) ...
- springboot接口访问权限AOP实现
场景 现在有个系统,很多接口只需要登录就可以访问,但是有些接口需要授予并验证权限.如果用注解controller的方式控制接口的权限呢? 1.注解声明代码 这个注解是要装饰在controller接口上 ...
- windows环境安装phantomjs和pyspider遇到的问题
1. 安装phantomjs 下载地址:http://phantomjs.org/download.html 解压后将phantomjs.exe文件放到python根目录 2.安装pyspider p ...
- 高德JSAPI获取当前所在位置的经度纬度
这是在浏览器中的效果: 控制台打印出来的就是经度纬度的值 代码如下: <!doctype html> <html> <head> <meta charset= ...
- node 创建
下载 node : 注意选项 ADD PATH 配置环境变量 node -v npm -v 检查创建一个服务器 : //创建一个服务器 127.0.0.1:8888 var http = requir ...
- tensorflow--交叉熵
学而不思则罔,思而不学则怠. 最近在看<TensorFlow 实战Google深度学习框架第二版>这本书.从头开始学习深度学习,对于细节方面进行探究.相当于重新拾起来这门”手艺“. 这篇随 ...
- NOIP2018Day1T1 铺设道路
题目描述 春春是一名道路工程师,负责铺设一条长度为 \(n\) 的道路. 铺设道路的主要工作是填平下陷的地表.整段道路可以看作是 \(n\) 块首尾相连的区域,一开始,第 \(i\) 块区域下陷的深度 ...
- face++ php
总流程是先上传文件,保存到后台,获取返回来的face_token保存下来,然后拿face_token添加到faceSet里面去,搜索的时候结果会返回faceSet里面的face_token 1.dem ...
- java sigar获取本地信息以及org.hyperic.sigar.SigarException: The device is not ready报错解决
window下,使用java sigar 获取磁盘使用率,cpu使用率以及内存使用情况等信息时. 一:首先需要下载jar包和相关文件 sigar-1.6.4.zip 如果想了解更多可以去 sigar官 ...
- Python安装xlrd和xlwt的步骤以及使用报错的解决方法
一.安装xlrd和xlwt功能模块步骤 1.使用python -V查看python的版本号,并查看python安装环境,是否安装成功: 2.可以通过官网(python官网:https://pypi ...