一、类的属性

1.语法格式

修饰符 类型 属性名 = 初值

说明:修饰符private:该属性只能由该类的方法使用。在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)

     修饰符public:该属性可以被该类以外的方法访问。对所有类可见。使用对象:类、接口、变量、方法

          类型:任何基本类型,如int、boolean或任何类

补充:修饰符可以用来修饰变量,可以指明变量是公有还是私有,私有的变量不能通过 对象.属性 的方式调用

2.变量的分类:

  1.成员变量:在方法体外,类体内,声明的变量称为成员变量

      成员变量包括:1.实例变量(不以static修饰)

                  2.类变量(以static修饰)

  2.局部变量:在方法体内部声明的变量称为局部变量

      局部变量包括:1.形参(方法签名中定义的变量)

             2.方法局部变量(在方法内定义的变量)

             3.代码块局部变量(在代码块内定义的变量)

实例:

public class Person{
public String name = "赵云";//public:公有的,这样的类不仅可以在本类的方法中使用,也可以在类的外部使用
private int age;//private:私有的,只可以在本类方法中使用,不可以在类的外部使用
//以上变量为实例变量,就是指在类实例化成对象之后才能使用的变量
public static String sex = "男";//static:静态的,这样的变量叫做类变量,不需要实例化成对象就可以使用。(可以通过 类名.属性 直接调用)
public void showAge(){
System.out.println(age);
}
}

  3.成员变量和局部变量的区别

      成员变量:1.成员变量定义在类中,在整个类中都可以被访问。

           2.成员变量分为类成员变量和实例成员变量,实例成员变量只存在于对象所在的堆內存中(实例变量只能是在类实例化后的对象中可以使用)。

           3.成员变量有默认初始值。

           4.成员变量的权限修饰符可以根据需要任意选一个(private public 或 protected)。

      局部变量:1.局部变量只定义在局部范围内,如方法内,代码块内等等(局部变量只能在它所属的方法的范围内可以使用)。

           2.局部变量存在于栈内存中。作用的范围结束,变量空间会自动释放。

           3.局部变量没有默认初始化值,每次必须显式初始化。

           4.局部变量声明时不指定权限修饰符

二、类的方法

1.语法格式:

修饰符 返回值类型 方法名(参数列表){
    方法体语句;
}

说明:1.没有返回值,用void

   2.有返回值,用具体的返回值类型,例如方法上定义的int是返回值的类型,return后面跟的是方法的返回值

实例:

public class Person{
private int age;
public int getAge(){//声明方法getAge
return age;
}
public void setAge(int i){//声明方法setAge
age = i;//将参数i的值赋给类的成员变量age
}
}

三、关于方法

  1.什么是方法(函数)?

    方法是类或对象行为特征的抽象,也称为函数。Java中的方法不能独立存在,所有的方法必须定义在类里。

  2.语法格式:

修饰符 返回值类型 方法名(参数类型 形参1,参数类型 形参2,...){
程序代码
return返回值;
}

其中: 形式参数:在方法被调用时用于接收外部传入的数据的变量。(方法的参数可以有多个)

      参数类型:就是该形式参数的数据类型。

   返回值:方法在执行完毕后返还给调用它的程序的数据。

   返回值类型:方法要返回的结果的数据类型。

   实参:调用方法时实际传给函数形式参数的数据。

  3.方法的调用

    方法只有被调用,才会被执行,方法调用的分析过程为:

  注意:1.没有具体返回值的情况,返回值类型用关键字void表示,那么该函数中的return语句如果在最后一行可以省略不写。

     2.定义方法时,方法的结果应该返回给调用者,交由调用者处理。

     3.在同一个类中,所有的方法都可以直接相互调用,不用new去实例化对象。

     4.方法中只能调用方法,不可以在方法内部定义方法。

  4.方法的重载(overload)

    重载(overload):指在一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。

例如:

//多个相同名称的方法如果想在一个类中共存,那么这些同名方法一定是参数的个数或者参数的数据类型不一样
public int add(int x, int y){
return x + y;
}
public double add(int x, double y){//参数类型不同
return x + y;
}
public int add(int x, int y, int z){//参数个数不同
return x + y + z;
}
public double add(double y, int x){//与2比,顺序不同,但也是参数类型不同
return x + y;
}

    重载的特点:与返回值类型无关,只看参数列表,且参数列表必须不同(参数个数或参数类型不同)。(例如:public double add( int x,  int y)与public int add (int x, int y) 不构成重载)

          调用时,根据方法参数列表的不同来区别

实例:编写程序,定义三个重载方法并调用。方法名为mOL。要求:三个方法分别接收一个int参数、两个int参数、一个字符串参数,分别执行平方运算并输出结果,相乘并输出结果,输出字符串信息,并在主类的main()方法中分别用参数区别调用三个方法。

public class Test{
public static void main(String args[]){
Test t = new Test();
t.mOL(2);
t.mOL(2,3);
t.mOL("重载方法mOL");
} public void mOL(int i){
System.out.println(i * i * i);
} public void mOL(int x, int y){
System.out.println(x * y);
} public void mOL(String s){
System.out.println(s);
}
}

打印结果:

实例:定义三个重载的方法max(),第一个方法求两个int值中的最大值,第二个方法求两个double值中的追大值,第三个方法求三个double值中的最大值,并分别调用三个方法。

public class Test{
public static void main(String args[]){
Test t = new Test();
t.max(1, 2);
t.max(1.3, 1.4);
t.max(1.5, 16, 0.17);
} public void max(int x, int y){
if(x > y){
System.out.println("最大值是:" + x);
}else{
System.out.println("最大值是:" + y);
}
} public void max(double x, double y){
double res = 0;
if(x > y){
res = x;
}else{
res = y;
}
System.out.println("最大值是:" + res);
} public void max(double a, double b, double c){
double res = 0; if(a > b){
if(a > c){
res = a;
}else{
res = c;
}
}else{
if(b > c){
res = b;
}
}
System.out.println("最大值是:" + res);
}
}

打印结果

Java学习day8面向对象编程2-类的属性和方法的更多相关文章

  1. [Java入门笔记] 面向对象编程基础(二):方法详解

    什么是方法? 简介 在上一篇的blog中,我们知道了方法是类中的一个组成部分,是类或对象的行为特征的抽象. 无论是从语法和功能上来看,方法都有点类似与函数.但是,方法与传统的函数还是有着不同之处: 在 ...

  2. Java学习day7面向对象编程1-对象和类

    一.Java编程中对象和类的概念 1,什么是类? 答:类是客观存在的,抽象的,概念的东西. 2,什么是对象? 答:对象是具体的,实际的,代表一个事物.例如:车是一个类,汽车,自行车就是他的对象. 关于 ...

  3. Java学习之==>面向对象编程 Part2

    一.封装 封装,即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别:将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结 ...

  4. Java学习_面向对象编程

    抽象类 一个class定义了方法,但没有具体执行代码,这个方法就是抽象方法,抽象方法用abstract修饰.因为抽象类本身被设计成只能用于被继承,因此,抽象类可以强迫子类实现其定义的抽象方法,否则编译 ...

  5. JAVA学习:面向对象编程

    "算法+数据结构=程序"是一句经典名言,这句话很直接的说明了程序的本质:处理数据.产生结果.即便是最简单的HelloWorld程序,我们也可以将字符串"HelloWorl ...

  6. Java学习之==>面向对象编程 Part1

    一.面向对象与面向过程 1.面向过程 角度是功能,以方法为最小单位,思考的是具体怎么做. 2.面向对象 角度是抽象,以类为最小单位,思考的是谁来做. 3.示例:“小明去上班” 面向过程 起床,刷牙洗脸 ...

  7. JS面向对象编程,对象,属性,方法。

    document.write('<script type="text/javascript" src="http://api.map.baidu.com/api?v ...

  8. Java学习day9面向对象编程2-方法的可变个数的参数和方法的参数传递

    一.方法的可变个数的参数. 问题:我们能够打印的信息都是来源于方法的参数,也就是形参的传递.那如何要给方法传递不同的参数? .1.采用数组形参来定义方法 public static void test ...

  9. IOS学习笔记2—Objective C—类、属性、方法

    以下是我学习IOS开发的一些笔记和心得,贴出来和大家一同分享,也希望大家能补充和纠错,共同进步 有Android和IOS开发问题也希望能和大家交流! Objective-C 1.OC是一门基于C的面向 ...

随机推荐

  1. python 获取系统环境变量 os.environ and os.putenv

    从一段code说起 “if "BATCH_CONFIG_INI" in os.environ:” 判断环境变量的值有没有定义 如果定义的话就去环境变量的值,否则就取当前目录下的co ...

  2. django搭建一个小型的服务器运维网站-查看和修改服务器配置与数据库的路由

    目录 项目介绍和源码: 拿来即用的bootstrap模板: 服务器SSH服务配置与python中paramiko的使用: 用户登陆与session; 最简单的实践之修改服务器时间: 查看和修改服务器配 ...

  3. .gitignore配置文件

    .gitignore文件 在使用Git的过程中,我们希望有些文件比如日志.临时文件.编译的中间文件等不要提交到代码仓库,这时就要设置相应的忽略规则,来忽略这些文件的提交.git提供一个.gitigno ...

  4. AGC014做题记录

    貌似是比较水的一场 可是我依然8会做 C 发现除了第一步以外的走法都不会受到锁的影响并且一定选四个方向距离最近的径直走过去 那么第一步能走到的联通块取个min就好了 (我竟然第一发特别认真的写了一个D ...

  5. 为何使用Shell脚本

    为何使用Shell脚本 分类: linux shell脚本学习2012-09-12 17:18 78人阅读 评论(0) 收藏 举报 shell脚本任务工作         s h e l l 脚本在处 ...

  6. 自己动手实现一个网络模型 python

    转自:https://www.jianshu.com/p/4b30e1dd2252 common_funcs.py import numpy as np import matplotlib.pyplo ...

  7. MySQL两个时间相减

    SELECT TIMESTAMPDIFF(MONTH,'2009-10-01','2009-09-01'); interval可是: SECOND 秒 SECONDS MINUTE 分钟 MINUTE ...

  8. 旧题再做【bzoj2287】【[pojchallenge]消失之物】分治背包

    (上不了p站我要死了) 今天听了 doggu神 讲了这道题的另一种做法,真是脑洞大开.眼界大开.虽然复杂度比黄学长的要大一点,但不总结一下简直对不起这神思路. 方法1:黄学长的做法(点这里) Desc ...

  9. 【bzoj3463】[COCI2012] Inspector

    *题目描述: 在一个小国家中,一个新的小镇终于建成了!如往常一样,Mirko获得了“首席税务巡查员”的职位.他的任务是保证正确地计算各公司的收入情况.一共有N家办公室坐落在主干道上,从左到右被编号为1 ...

  10. Content-type的几种常见类型

    一.是什么? 是Http的实体首部字段,用于说明请求或返回的消息主体是用何种方式编码,在request header和response header里都存在. 二.几个常用类型: 1.applicat ...