1.问题?
怎么创建对象?

类名 对象名=new 类名();
在java中只要是看到了()! 这就是方法! 2.构造方法: 创建某个对象的方法! Student stu=new Student(); Student() ==>构造方法 我们并没有在Student类中创建这个构造方法! 为什么我们还能创建对象呢??

因为 系统默认会给我们创建一个本类的 无参构造方法!
如果我们 创建了本类的构造方法! 系统将不再创建!
public class Student{
int age;
Stirng name; //系统默认创建的无参构造方法
public Student(){
} } ****只有我们的构造方法才能创建出类的实例(对象)! ****没有构造方法,我们就无法通过类 来创建对象! ()中没有值,就是无参! (String name,int age)中有值,就是有参或者带参! 3.创建构造方法的语法: 访问权限修饰符 类名(){
}
方法的定义: 行为! 方法在java中怎么定义?语法?
访问修饰符 返回值类型 方法名(形参){
方法体
public void showInfo(){ } 所有的方法,只要是没有返回值 返回值类型 必须写成 void (构造方法除外)
4.参数列表:
01.参数个数
02.参数类型
03.参数的顺序

5.参数传递:
01.值传递 传递的是对象的值
基本数据类型+String类型 作为参数的时候 都是使用的值传递 02.引用传递 传递的对象的内存地址
除了String类型之外的所有引用数据类型 在 作为参数的时候 都是使用的引用传递
**值传递 public static void main(String[] args) {
int num1 = 5;
changeNum(num1);
System.out.println(num1);
} private static void changeNum(int num2) {
num2 = 50;
} /**
* @param name 用户传递过来的姓名
*/
public void changeName(String name) {
name = "小黑";
} public static void main(String[] args) {
// 实例化Student对象
Student stu = new Student();
// 定义一个姓名
String name = "小白";
stu.changeName(name);
System.out.println(name); // 小白
} **引用传递 public class Student { String name; // 姓名
int age; // 年龄 public static void main(String[] args) {
Student stu1 = new Student();
stu1.name = "老公";
stu1.age = 50; Student stu2 = stu1;
/**
* 把stu1的内存地址 给 stu2
* 问题1:
* 我们有没有显式给stu2对象的name属性赋值?? 没赋值!!
* 我们有没有显式给stu2对象的age属性赋值?? 没赋值!!
* 问题2:
* 我们改变stu1或者stu2中的任何一个对象!
* 那么另一个对象 也随之改变!
* 因为stu1和stu2共享堆中的区域!
*/
System.out.println(stu2.name);
System.out.println(stu2.age); }
}

public class Student {

	String name; // 姓名

	public void changeName(Student stu2) {
stu2.name = "小黑";
} public static void main(String[] args) {
Student stu1 = new Student();
stu1.name = "小白";
stu1.changeName(stu1); //Student stu2 =stu1;
System.out.println(stu1.name); } } public static void main(String[] args) {
String[] names1 = { "小黑", "小白", "小红" };
System.out.println(names1[0]); // 小黑
changeNames(names1); // String[] names2=names1;
System.out.println(names1[0]); // 小黑黑 } private static void changeNames(String[] names2) {
names2[0] = "小黑黑";
}

OOP⑵的更多相关文章

  1. c#面向对象基础技能——学习笔记(二)基于OOP思想研究对象的【属性】

    字段(成员变量): 字段只能从对象中访问实例字段,无法直接从类中访问(换言之,不创建实例就不能访问),可以理解为:字段一般用在内部数据交互使用,当需要为外部提供数据时,(要优先使用自动实现的属性而不是 ...

  2. 一个简单oop的changeTab

    好多地方都会用到这样一个效果“点击tab切换内容页”,根据自己的想法实现了一下,写了个简单的插件.以前写代码都是标准的函数式编程,现在觉得面向对象编程看起来比较爽,并且更容易维护,于是就用oop的思想 ...

  3. Python OOP(面向对象编程)

    一OOP的作用 在Python中,类是面向对象设计(OOP)的主要工具.通过使用类这种工具,OOP可以: 1.分解代码,最小化代码的冗余. 2.通过定制现有的代码,来编写新的程序,而不用在原处进行修改 ...

  4. OOP,WEB开发实用小技巧

    偶然读到一篇博客,记录一下心得.这种设计对于新手来说一般是想不到的,它充分的发挥了OOP语言的特性,让代码专用而清爽.这是不是重构的思想呢? 我们在写业务层的时候,有很多方法是重复功能的,我们就可以使 ...

  5. 从OOP的角度看Golang

    资料来源 https://github.com/luciotato/golang-notes/blob/master/OOP.md?hmsr=toutiao.io&utm_medium=tou ...

  6. 玩转JavaScript OOP[2]——类的实现

    概述 当我们在谈论面向对象编程时,我们在谈论什么?我们首先谈论的是一些概念:对象.类.封装.继承.多态.对象和类是面向对象的基础,封装.继承和多态是面向对象编程的三大特性. JavaScript提供了 ...

  7. Atitit 面向对象编程(OOP)、面向组件编程(COP)、面向方面编程(AOP)和面向服务编程(SOP)的区别和联系

    Atitit 面向对象编程(OOP).面向组件编程(COP).面向方面编程(AOP)和面向服务编程(SOP)的区别和联系 1. 面向组件编程(COP) 所以,组件比起对象来的进步就在于通用的规范的引入 ...

  8. iOS - 对OOA、OOD、OOP的理解

    很多人在求职的时候,会遇到一个这样的问题:“对OOD/OOP有较深的理解”,这个时候有人就会问OOD.OOP是什么呢?那么今天咱们就一块来看一下OOA.OOD.OOP到底是什么! (一)OOA--面向 ...

  9. OOP感悟

    行内讲的最多的就是出来一年内基本靠copy,一年后才基本懂得如何去写代码,而理解领悟oop,需要的时间却不定. 我工作中,我发现很多人拿着面向对相当的语言作者做着面向过程的事情,不需要知其所以然,只要 ...

  10. 初识JAVA之OOP

    有一段时间没发博客了,每次手打还是很累,但感觉很充实.. 最近发现很多初学者到了面向对象编程这个知识点时,不太清楚类是如何转化成为对象的,很是困扰,今天我在这里谈谈我的理解,大家一起来研究学习... ...

随机推荐

  1. pymysql 数据库编程

    1.引入模块 import pymysql 2.用于建立与数据库的连接 调用pymysql模块中的connect()方法 conn = pymysql.connect(host='localhost' ...

  2. legend2---开发日志5(如何解决插件的延迟问题,比如vue)

    legend2---开发日志5(如何解决插件的延迟问题,比如vue) 一.总结 一句话总结:元素可以先设置为隐藏,这样就不会让用户看到延迟的问题,然后等加载完再显示, 元素先设置为隐藏 加载完再显示 ...

  3. 干货|基于 Spring Cloud 的微服务落地

    转自 微服务架构模式的核心在于如何识别服务的边界,设计出合理的微服务.但如果要将微服务架构运用到生产项目上,并且能够发挥该架构模式的重要作用,则需要微服务框架的支持. 在Java生态圈,目前使用较多的 ...

  4. 单细胞数据高级分析之消除细胞周期因素 | Removal of cell cycle effect

    The normalization method described above aims to reduce the effect of technical factors in scRNA-seq ...

  5. WPF:数据和行为

    如果自己来做一个UI框架,我们会首先关注哪些方面?我想UI框架主要处理的一定包括两个主要层次的内容,一个是数据展现,另一个就是数据操作,所以UI框架必须能够接收各种不同的数据并通过UI界面展现出来,然 ...

  6. linux进程管理之进程查看

    查看进程 process ====================================================================================了解如 ...

  7. 网站访问出现 ------ Can not write to cache files, please check directory ./cache/ .

    最近在搞微商城时,突然出现了Can not write to cache files, please check directory ./cache/ .这样一个提示, 但最近好像没搞什么大动作,怎么 ...

  8. 机器学习ML策略

    1.为什么是ML策略 例如:识别cat分类器的识别率是90%,怎么进一步提高识别率呢? 想法: (1)收集更多数据 (2)收集更多的多样性训练样本 (3)使用梯度下降训练更长时间 (4)尝试Adam代 ...

  9. PHP用PDO

    $pdo = new PDO('mysql:host=localhost;dbname=jmyp','root','root'); $pdo->exec('set names utf8'); $ ...

  10. 20165309 Linux安装及学习

    Linux安装及学习 安装虚拟机 结合娄老师的博客<基于VirtualBox虚拟机安装Ubuntu图文教程>和对一些小问题的百度,我也算是很顺利地完成了安装. 然后,按照步骤安装了虚拟机增 ...