面向对象编程

Java核心思想:oop(Object-Oriented Programming)

本质:以类的方式组织代码,以对象的组织(封装)数据

三大特性:

封装

继承

多态

面向过程

步骤清晰简单,第一步该做什么,第二步该做什么

处理一些简单的问题

面向对象

分类的思维模式,将问题分类

适合处理复杂的问题

先有类再有对象,类是对象的模板,对象是类的实例化

方法调用回顾

静态方法

非静态方法

public class Main{//包含主方法的类

public static void main(String[] args){

Student.test();//输出1,静态方法可以直接调用

Student.test1();//报错,非静态方法得实例化后才能调用

Student a = new Student();

a.test1();//输出2

}

}

public class Student{//定义了一个学生类

public static void test(){//定义了一个静态方法

System.out.println("1");

}

public void test1(){

System.out.println("2");

}

}

静态方法只能调用静态方法

public class Main{

public static void main(String[] args){

}

public void a(){

b();

}

public void b(){

c();

}

public static void c(){

d();//错误,static定义的方法会随着类一起加载,而非静态方法得实例化后才会加载,调用未加载的方法,错误

}

public void d(){

e();

}

public vodi e(){}

}

Java的值传递和引用传递

值传递

public class Main{

public static void main(String[] args){

int a = 1;

test(a);//输出值为1,方法中并未返回值

}

public static void test(int a){

a=10;

}

}

引用传递(本质还是值传递)

public class Main{

public static void main(String[] args){

Student a = new Student();

System.out.println(a.name);//输出为null

change(a); //这一步将对象a传递给方法change

System.out.println(a.name);//输出为陈陈陈

}

public static void change(Student a){

a.name="陈陈陈" //修改传递进来的对象a中的name属性

}

}

public class Student{ //定义了一个学生类,有一个name属性

String name;

}

类与对象的关系

类是一种抽象数据类型,是对一类事物的整体描述或者定义,但不代表某一个具体事物

如:手机,宠物

对象

对象是抽象概念的具体实例

如:小米手机,旺财等

public class Main{

public static void main(String[] args){

Student student = new Student();

student.name="陈陈陈";

student.study();

}

}

public class Student{

String name;

int age;

public void study(){

System.out.println(this.name+"正在好好学习");

}

}

构造器

与类名相同的方法,没有返回值

alt + insert快捷创建构造器

作用

给属性赋初始值,使用new创建对象本质上是在调用构造器

无参构造与有参构造

public class Main{

public static void main(String[] args){

Student student = new Student();

System.out.println(student.name);//如果没有赋值,应当输出null,现在输出了陈陈陈

Teache teacher =new Teacher('陈琛琛'); //有参构造器必须输入对应的值,不然报错

}

}

public class Student{

String name;

public Student(){

this.name = "陈陈陈";

}

}

public class Teacher{

String name;

public Teacher(String name){

this.name=name;

}

}

java 构造器 血药主题_Day08-面向对象编程,Java构造器相关推荐

  1. java 构造器 血药主题_java中的构造器

    构造器是什么 1.构造器,也称构造方法.构造函数.作用是构造出来一个类的实例,确保对象得到初始化. 2.构造器的格式: 权限修饰符 类名(无参/有参){}. 3.根据有无参数,可分为无参构造 和有参构 ...

  2. Java基础学习——第六章 面向对象编程(下)

    Java基础学习--第六章 面向对象编程(下) 一.关键词:static 1. static关键字的引入 当我们编写一个类时,其实就是在描述其对象的属性和行为,而并没有产生实质上的对象,只有通过new ...

  3. java学习笔记-第八章:面向对象编程(中级部分)

    第八章:面向对象编程(中级部分) 总体内容 IDEA IDEA介绍 ECLIPSE介绍 IDEA使用 破解IDEA2020.2.2 IDEA工作界面介绍 IDEA调整代码,导航栏的字体大小,主题颜色, ...

  4. 【java学习】 面向对象编程+java购物车系统

    文章目录 一.设计对象 二.内存机制 三.购物车系统 四.构造器 构造器 this关键字的作用 一.设计对象 类和对象是什么? 类:是共同特征的描述(设计图); 对象:是真实存在的具体实例; 如何设计 ...

  5. java class对象创建时机_Java面向对象编程-类的声明周期

    第十章 类的生命周期 10.1 Java虚拟机及程序的生命周期 当通过java命令运行一个Java程序时,就启动了一个Java虚拟机进程.Java虚拟机进程从启动到终止的过程,称为Java虚拟机的生命 ...

  6. 面对对象课程设计报告java,面向对象编程 JAVA编程综合实验报告.doc

    PAGE \* MERGEFORMAT 20 成绩: JAVA编程B综合实验报告 实验名称:面向对象编程 实验时间:2012年 5月 31日星期四 JAVA编程B综合实验报告 一.实验名称 面向对象编 ...

  7. python编程求导数_面向对象编程 —— java实现函数求导

    首先声明一点,本文主要介绍的是面向对象(OO)的思想,顺便谈下函数式编程,而不是教你如何准确地.科学地用java求出函数在一点的导数. 一.引子 defd(f) :defcalc(x) : dx= 0 ...

  8. B站韩顺平java学习笔记(六)--面向对象编程章节

    目录 一.类和对象 1.定义及区别 2.对象内存布局 3.属性/成员变量 (1)基本介绍 (2)注意事项和细节说明 (3)访问属性 4.对象 (1)创建对象 (2)对象分配机制 ​(3)Java创建对 ...

  9. java 求导函数_面向对象编程 —— java实现函数求导

    文章目录 首先声明一点,本文主要介绍的是面向对象(OO)的思想,顺便谈下函数式编程,而不是教你如何准确地.科学地用java求出函数在一点的导数. ★引子 defd(f) :defcalc(x) : d ...

  10. java 以一个例子来理解面向对象编程思想

    在面向对象的编程中,面向对象的应用是检验你对现实中实际物体和及其关系的抽象能力.在实际编程过程中,你的能力并不是你掌握了多少新的技术,而是对你当前问题的认识的深度,当你理解的足够深的时候,你的框架就出 ...

最新文章

  1. 如何通过交货单把B库存发出
  2. 浅谈企业MES与ERP系统集成
  3. SAP Spartacus build error之后的retrigger方式
  4. MSDN-MDX#001 - 多维表达式 (MDX) 参考
  5. 文件上传input简便美化方案
  6. python ctypes 回调函数_如何用Python中的ctypes创建回调函数?
  7. 初识 Node.js
  8. react刷新页面_【跟着官网学React】Hello World
  9. Git Bash使用详细教程
  10. php版wap浏览器,PHP 检测手机浏览器的代码
  11. 京东商城逆势融资B2C成投资热土
  12. linux自动任务计划任务,「linux下的计划任务——只执行一次的定时任务」- 海风纷飞Blog...
  13. 奇迹mu修改服务器名,奇迹MU 红名设置调整方案说明
  14. 动物识别系统的规则库
  15. 漫步者的蓝牙耳机和南卡耳机哪个好?半入耳式耳机对比!
  16. 【网课平台】Day16.项目优化:压测、加缓存优化与分布式锁
  17. Hexo 搭建个人博客 基础配置及实操
  18. 《黑镜》第一季观后感
  19. Web Of Science检索页面错误信息修改申请方法
  20. 大数据之保险行业的领导驾驶舱到底怎么做!附上模板

热门文章

  1. C语言交换a,b值的几种写法
  2. 佛法在世间不离世间觉离世求佛法犹如觅兔角
  3. 使用laser_filters屏蔽车架
  4. java 检测u盘_Java简单U盘检测程序
  5. AutoCAD 系统变量
  6. 数字签名?电子签名?傻傻分不清楚!
  7. python直方图教程_Matplotlib绘制直方图
  8. 成都可以打狂犬疫苗的地方
  9. 格拉姆角场(GAF)学习记录
  10. 要么听我的,要么走开(摘自《代码之道》第8章)