一、类的私有成员和公有成员

1、私有成员

修饰符private    如果在类的声明前加上修饰符private,则无法从该类的外部访问到该类的内部成员,而只能被该类自身访问和修改,而不嗯那个被其他类,包括该类的子类来获取和引用,达到对数据最高级别保护

2、公有成员

修饰符public  表示该成员可以被其他所有的类缩访问

二、方法的重载

如果同一个类中包含了两个或两个以上方法名相同、方法参数的个数、顺序或类型不同的方法,则称为方法的重载,也可称该方法被重载了。如下所示 4 个方法名称都为 show ,但方法的参数有所不同,因此都属于方法的重载:

通过方法的重载,只需一个方法名称,可拥有多个不同功能。

二、构造方法

构造方法是一种特殊的方法,是对象被创建时初始化对象的成员的方法。构造方法的名称必须与它所在的类名完全相同。构造方法没有返回值,但在定义的时候,构造方法前不能加修饰符void。

构造方法特点:

(1)方法名与类名相同

(2)没有返回值,但修饰符不能加void

(3)主要作用是对类对象的初始化工作

(4)一般不能显式地直接调用,而是用new来调用

(5)在创建一个类对象的同时,系统自动调用该类的构造方法为新对象初始化

public class demo1 {

    /**
* @param args
*/
public static void main(String[] args) {
Cylinder volu = new Cylinder(2.5, 5, 3.14);
System.out.println("area = "+volu.area());
System.out.println("volume = "+volu.volume());
}
} class Cylinder {
private double radius;
private int height;
private double pi = 3.14; public Cylinder(double r, int h, double p) {
pi = p;
radius = r;
height = h;
} double area() {
return pi * radius * radius;
} double volume() {
return area() * height;
}
}
//运行结果
//area = 19.625
//volume = 98.125

2、构造方法的重载

public class demo1 {

	/**
* @param args
*/
public static void main(String[] args) { Cylinder volu1 = new Cylinder(2.5, 5, 3.14);
Cylinder volu2 = new Cylinder();
System.out.println("圆柱1面积 = "+volu1.area());
System.out.println("圆柱1体积 = "+volu1.volume());
System.out.println("圆柱2面积 = "+volu2.area());
System.out.println("圆柱2体积 = "+volu2.volume());
}
} class Cylinder {
private double radius;
private int height;
private double pi = 3.14;
public Cylinder() //无参构造方法
{
radius = 1;
height = 2;
pi = 3.14;
}
//带参构造方法
public Cylinder(double r, int h, double p) {
pi = p;
radius = r;
height = h;
} double area() {
return pi * radius * radius;
} double volume() {
return area() * height;
}
}
//运行结果:
//圆柱1面积 = 19.625
//圆柱1体积 = 98.125
//圆柱2面积 = 3.14
//圆柱2体积 = 6.28

三、静态成员

static称为静态修饰符。被static修饰的成员被称为静态成员

1、静态变量

静态变量在定义时用static修饰,静态变量在某种程度上与全局变量相似,任何一个类的对象去修改它时,也都是对同一个内存单元进行操作。如果该变量不是私有的,那么就可以在类的外部进行访问而不需要创建类的实例对象,只需要类名就可以使用。使用格式有以下两种:

类名.静态变量名;

对象名.静态变量名;

public class demo1 {

    /**
* @param args
*/
public static void main(String[] args) { Cylinder volu1 = new Cylinder(2.5, 5);
System.out.println("圆柱1面积 = "+volu1.area());
System.out.println("圆柱1体积 = "+volu1.volume());
volu1.count();
Cylinder volu2 = new Cylinder(1.0,2);
System.out.println("圆柱2面积 = "+volu2.area());
System.out.println("圆柱2体积 = "+volu2.volume());
volu2.count(); }
} class Cylinder {
private double radius;
private int height;
private static double pi = 3.14;
private static int num = 0;
//带参构造方法
public Cylinder(double r, int h) {
radius = r;
height = h;
num++;
} double area() {
return pi * radius * radius;
} double volume() {
return area() * height;
}
public void count()
{
System.out.println("创建了"+num+"个对象");
}
}
//运行结果
//圆柱1面积 = 19.625
//圆柱1体积 = 98.125
//创建了1个对象
//圆柱2面积 = 3.14
//圆柱2体积 = 6.28
//创建了2个对象

静态变量

由于该例中对象的pi值都相同,所以没必要每个对象都保存自己的pi值。静态变量可节省大量内存空间。

注:对于静态变量的使用,建议采用“类名.静态变量名”的形式来访问。

2、静态方法

(1)static方法属于整个类,所以他不能操纵和处理属于某个对象的成员,只能处理属于整个类的成员。即static方法只能访问static成员变量或调用static成员方法。

(2)静态方法中不能使用this和super

(3)调用静态方法格式如下:

类名.静态方法名();   建议

对象名.静态方法名();

2、静态初始化器

类是在第一次被使用的时候才被装载的,而不是程序启动时就装载程序中所有可能要用到的类

JAVA 语言类的特性(成员、重载、构造方法、静态成员)的更多相关文章

  1. Java语言的三大特性

    Java语言的三大特性 1.封装 1.1  概念: 封装也成为信息异常,隐藏对象的属性和实现细节,仅对外公开接口(外部不可以直接看到对象的属性细节并且不能直接更改属性的值,只能通过方法来读取或更改属性 ...

  2. IT兄弟连 Java语法教程 Java语言的其他特性

    Java语言中除了非常重要的跨平台特性外,还有如下几个关键特性: ●  语法简单易学 Java语言的语法简单明了,容易掌握,而且是纯面向对象(OOP)的语言,Java语言的简单性主要体现在以下几个方面 ...

  3. IT兄弟连 Java语法教程 Java语言的跨平台特性

    什么是平台 Java是可以跨平台的编程语言,那么首先我们需要知道什么是平台,通常我们把CPU与操作系统的整体称为平台. CPU大家都知道,是计算机的大脑,它既负责思维运算,又负责计算机中各种零部件的命 ...

  4. Java学习的随笔(2)Java语言的三大特性

    1.面向对象的三大特性 面向对象的三大特性主要包括:继承.封装.多态 (1)继承:就是指子类(导出类)获得了基类的全部功能(所有的域和方法).  注:在子类中,想要调用基类的方法可以使用“super. ...

  5. Java自学-类和对象 方法重载

    什么是Java 方法重载 方法的重载指的是方法名一样,但是参数类型不一样 步骤 1 : attack方法的重载 有一种英雄,叫做物理攻击英雄 ADHero 为ADHero 提供三种方法 public ...

  6. static 关键字在java语言中的特性

    ​ 一,将自己注入到一个静态变量中实现静态类,如下写法 以上方法的目的是要实现一个静态类,方便用类名获取对象实例,一般情况下调用普通方法需要对象实例.这对象要么new出来,要么spring的注入如下是 ...

  7. 【Demo 0007】Java基础-类扩展特性

    本章学习要点:        1.  掌握static 修饰的类,方法以及变量的功能及用法;        2.  掌握代码块(静态,非静态)的作用以及注意事项:        3.  了解基本数据类 ...

  8. Java语言中的面向对象特性总结

    Java语言中的面向对象特性 (总结得不错) [课前思考]  1. 什么是对象?什么是类?什么是包?什么是接口?什么是内部类?  2. 面向对象编程的特性有哪三个?它们各自又有哪些特性?  3. 你知 ...

  9. Java语言中的面向对象特性:封装、继承、多态,面向对象的基本思想(总结得不错)

    Java语言中的面向对象特性(总结得不错) [课前思考] 1. 什么是对象?什么是类?什么是包?什么是接口?什么是内部类? 2. 面向对象编程的特性有哪三个?它们各自又有哪些特性? 3. 你知道jav ...

随机推荐

  1. CodeVS 1017 DP

    1017 乘积最大 2000年NOIP全国联赛普及组NOIP全国联赛提高组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解  查看运行结果     题目描 ...

  2. POJ 3984 BFS

    迷宫问题 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 20665   Accepted: 12100 Descriptio ...

  3. Java多线程之“同步”

    好习惯要坚持,这是我第二篇博文,任务略重,但是要坚持努力!!! 1.竞争条件 首先,我们回顾一下<Java核心技术卷>里讲到的多线程的“竞争条件”.由于各线程访问数据的次序,可能会产生讹误 ...

  4. 2017 济南综合班 Day 6

    循环移动 (cyclic.cpp/c/pas) (1s/256M) 问题描述 给出一个字符串S与N个操作.每个操作用三元组(L, R, K)进行描述:操作将字符串第L个到第R个位置构成的子串循环移动K ...

  5. 「模板」网络最大流 FF && EK && Dinic && SAP && ISAP

    话不多说上代码. Ford-Fulkerson(FF) #include <algorithm> #include <climits> #include <cstdio& ...

  6. jsp03( javabeans)

    1.javabean简介 Javabeans就是符合某种特定规范Java类.使用Javabeans的好处是[解决代码的重复编写],减少代码冗余,功能区分明确,提高代码的维护性. 2.javabean的 ...

  7. [uva11174]村民排队 递推+组合数+线性求逆元

    n(n<=40000)个村民排成一列,每个人不能排在自己父亲的前面,有些人的父亲不一定在.问有多少种方案. 父子关系组成一个森林,加一个虚拟根rt,转化成一棵树. 假设f[i]表示以i为根的子树 ...

  8. 【洛谷 P5110】 块速递推(矩阵加速,分块打表)

    题目链接 掌握了分块打表法了.原来以前一直想错了... 块的大小\(size=\sqrt n\),每隔\(size\)个数打一个表,还要在\(0\text{~}size-1\)每个数打一个表. 然后就 ...

  9. Everything Has Changed(HDU6354+圆交+求周长)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6354 题目: 题意:用一堆圆来切割一个圆心为原点,半径为R的圆A,问切割完毕后圆A外围剩余部分的周长( ...

  10. Java的Integer常量池和String常量池

    1.Integer的常量池 看下面一段代码: package cn.qlq.test; public class ArrayTest { public static void main(String[ ...