一、方法:

1、方法概述:

  在JAVA中,方法就是用来完成解决某件事情或实现某个功能的办法。

2、方法的语法格式:

  修饰符  返回值类型 方法名(参数类型 参数名1,参数类型 参数名2,.....){
  执行语句  
  .....

  return 返回值;

  }

①、修饰符:比较多,有对访问权限进行限定的,如:静态修饰符static  最终修饰符final;

②、返回值类型:用来限定方法返回值的数据类型(当声明没有返回值时,类型处写void);

③、参数类型:用来限定调用方法时传入参数的数据类型;

④、参数名:是个变量,用于接收调用方法时传入的数据;

⑤、return :用于结束方法以及返回方法指定类型的值(当声明没有返回值时,可以省略);

⑥、返回值:被return语句返回的值,该值会返回给调用者。

3、方法定义的练习:

①、 无返回值无参数方法,如打印3行,每行3个*号的矩:

public static void printRect(){
//打印3行星
for (int i=0; i<3; i++) {
//System.out.println("***"); 相当于是打印3颗星,换行
//每行打印3颗星
for (int j=0; j<3; j++) {
System.out.print("*"); // ***
}
System.out.println();
}
}

②、有返回值无参数方法,如键盘录入得到一个整数:

public static int getNumber(){
Scanner sc = new Scanner(System.in);
int number = sc.nextInt();
return number;
}

③、无返回值有参数方法,如打印指定M行,每行N个*号的矩形:

public static void printRect2(int m, int n){
//打印M行星
for (int i=0; i<m; i++) {
//每行中打印N颗星
for (int j=0; j<n; j++) {
System.out.print("*");
}
System.out.println();
}
}

④、有返回值有参数方法,如求三个数的平均值:

public static double getAvg(double a, double b, double c) {
double result = (a+b+c)/3;
return result;
}

4、方法的重载:

JAVA允许在一个类中定义多个名称相同的方法,但是参数的类型或个数必须不同,这就是方法的重载。

注意事项:

①、重载方法参数必须不同;

②、重载只与方法名和参数类型有关、与返回值无关;

③、重载与具体的变量标识符无关。

5、参数传递:

   当我们要调用一个方法时,我们会把指定的数值,传递给方法中的参数,这样方法中的参数就有了这个指定的值,可以使用该值。这种方式叫参数传递。

 注意:

①、如果传入的值为基本数据类型(含String),形参的改变对实参不影响;

②、如果传入的值为引用数据类型,形参的改变对实参有影响。

二、类:

1、类的分类:

类是引用数据类型:

  一种为JAVA为我们提供好的类,如Scanner 、Random等;

  一种就是我们自己定义的数据类型;

2、类的定义格式:

public class 类名 {
//可编写0至n个属性
数据类型 变量名1;
数据类型 变量名2; //可编写0至n个方法
修饰符 返回值类型 方法名(参数){
执行语句;
  }
}

3、类的使用格式:

  导包:我们将所有的类型放到同一个文件夹下,可以避免导包;

  创建对象:数据类型 变量名 = new 数据类型 ();

  访问属性:变量名.属性

三、面向对象:
1、解释:

  面向对象与面向过程的差异(两者都是一种思维方式):

①、面向过程更多的体现是执行者(自己做事情);

②、面向对象是一种更符合我们思考习惯的思想,把复杂的事情简单化,让我们从执行者变成指挥者(角色发生改变);

2、类与对象:

①、类是一组相关的属性和行为的集合,是一个抽象的概念;

②、对象是该类事物的具体。

③、创建对象的格式:

类名 对象名 = new 类名();

如:

public class Car {
String color;
int number; void run() {
System.out.println(color + ":" + number);
}
} //测试类 public class CarDemo {
public static void main(String[] args) {
/*
* 测试:Car类中的run方法。
*/
// 1,创建Car的对象。给对象起个名字。
Car c = new Car();// c是类类型的变量。c指向了一个具体的Car类型的对象。
// 2,通过已有的对象调用该对象的功能。格式:对象.对象成员;
// 3,可以该对象的属性赋值。
c.color = "red";
c.number = 4;
c.run();
}
}

④、局部变量和成员变量的区别:

区别一:定义的位置不同:

  成员变量是直接定义在类里面的变量(不在方法中);

  局部变量是定义在(类中的)方法中或者{}语句里面的变量;

区别二:在内存中的位置:

  成员变量存储在堆内存的对象中;

  局部变量存储在栈内存的方法中;

区别三:生命周期不同:

  成员变量随着对象的出现而出现在堆中,随着对象的消失而从堆中消失(gc垃圾回收机制);

  局部变量随着方法的运行而出现在栈中,随着方法的弹栈而消失;

区别四:初始化不同:

  成员变量因为在堆中,所以默认了初始化值;

  局部变量没有初始化默认值,必须手动的给其赋值才能使用。

四、面向对象的特征:封装、继承、多态;

JAVA中面向对象的更多相关文章

  1. Java中面向对象三大特征

    也就是说在这里"人"是多态的, 在不同的形态时,特征行为是不一样的, 这里的"人", 同时有两种形态,一种是教师形态,一种是学生形态,所对应的特征行为分别是&q ...

  2. java中面向对象的三大特性小结

    java中面向对象的三大特性:封装.继承.多态 封装 把抽象的数据和对数据的操作封装在一起,隐藏变量的实现细节.数据被保护在内部,程序的其他部分只有通过被授权的操作(成员方法)才能对数据进行访问. 1 ...

  3. 关于Java中面向对象章节、IO 流中的重点基础知识。

    一.面向对象的三大特征,以及作用. 答:面向对象的三大特征即,封装性.继承性.多态性. 其分别的作用为 : 封装作用:将数据封装起来,提高数据的安全性, 继承作用:提高代码的复用性,减少冗余代码. 多 ...

  4. Java中面向对象的理解

    按照惯例,先做一个简单的介绍,现在开始学习 Thinging in Java 4 ,一边看,一边记录,我都不想给自己设定时间安排了,毕竟很少实现过.所以就这样吧!不定期的更新,我都会放到博客中的. 所 ...

  5. 2017.12.25 Java中面向对象思想的深刻理解

    今日内容介绍 1.面向对象思想 2.类与对象的关系 3.局部变量和成员变量的关系 4.封装思想 5.private,this关键字 6.随机点名器 01面向对象和面向过程的思想 * A: 面向过程与面 ...

  6. Java中面向对象三大特性之继承

    1. 继承的概述 继承就是子类继承父类的变量和方法,下面用代码解释一下: class Student {// 定义学生类 String name; int age; void study() { Sy ...

  7. Java中面向对象的详解

    1:成员变量和局部变量的区别(理解) (1)在类中的位置不同 成员变量:类中方法外 局部变量:方法定义中或者方法声明上 (2)在内存中的位置不同 成员变量:在堆中 局部变量:在栈中 (3)生命周期不同 ...

  8. Java中面向对象的分拣存储

    Student.java package yzhou.map; /** * 学生类 * * * @author 洋 * */ public class Student { private String ...

  9. java中面向对象的一些知识(二)

    一. 封装的讲解 什么是封装?为什么要封装?怎么实现封装? 封装的目的是为了提高程序的安全性.封装就是把不想让第三者看的属性,方法隐藏起来. 封装的实现方法是: 1.修改属性的可见性,限制访问. 2. ...

随机推荐

  1. .net 缓存之数据库缓存依赖

    当监听的指定数据库内容某张表变化时就更新缓存 先来配置数据库,启动监听服务(SQL2008下) 执行如下语句: ALTER DATABASE OumindBlog SET NEW_BROKER WIT ...

  2. CUDA计时

    from:http://blog.sina.com.cn/s/blog_45209f340101341e.html <1>使用cutil.h中的函数 unsigned int timer= ...

  3. Ubuntu下crontab命令的用法

    cron是一个Linux下的后台进程,用来定期的执行一些任务.因为我用的是Ubuntu,所以这篇文章中的所有命令也只能保证在Ubuntu下有效,但其他系统应该也差不多. 想要让cron执行你指定的任务 ...

  4. 【MySQL】MySQL悲观锁 + 事物 + for update 解决普通流量并发的问题

    使用mysql悲观锁解决并发问题   最近学习了一下数据库的悲观锁和乐观锁,根据自己的理解和网上参考资料总结如下: 悲观锁介绍(百科): 悲观锁,正如其名,它指的是对数据被外界(包括本系统当前的其他事 ...

  5. SQL Server列属性修改

    0.创建表 create table Users(Id int,Name nvarchar(32) not null,Phone nvarchar(16),Email nvarchar(128)) 1 ...

  6. I18N的前后端实现

    所需工具: 1.Vue                https://cn.vuejs.org/ 2.Vue-I18N      https://www.npmjs.com/package/vue-i ...

  7. Gson应用:从json格式简单字符串中获取value

    import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStreamReader; i ...

  8. 剑指Spring源码(三)俯瞰Spring的Bean的生命周期(大众版)

    距离上一次写Spring源码解析,已经过去了快要好几个月了,主要原因还是Spring的源码解析类文章太难写了,不像我先前写的什么CAS源码,AQS源码,LinkedBlockingQueue等等,这些 ...

  9. 开发php接口注意点

    1.制定规范 开发前一定要定好一个规范,比如要定好数据返回的通用参数和格式.关于数据格式,用的比较多的有xml和json,我建议用json,因为json比xml的好处更多. 2.精简的返回数据 接口数 ...

  10. SQL Server2012如何打开2016的profiler文件

    SQL Server 2012如何打开2016的profiler文件 作者:markjiang7m2 原文地址:https://www.cnblogs.com/markjiang7m2/p/10980 ...