Java入门——(2)面对对象(上)
1 class Person{
2 //定义int 类型的变量
3 int age;
4 //定义speak()方法
5 void speak (){
6 System.out.println(“***”)
7 }
8 } //Person 类名,age 是成员变量,speak()成员方法
| 成员变量类 | 初始值 | 成员变量类 | 初始值 |
| byte | 0 | double | 0.0D |
| short | 0 | char | 空字符,‘\u0000' |
| int | 0 | boolean | false |
| long | 0L | 引用数据类型 | null |
| float | 0.0F |
1 class Student{
2 private String name; //将name属性私有化
3 private int age; //将age属性私有化
4 //下面是公有的getXXX()和setXXX()方法
5 public String getName (){
6 return name;
7 }
8 public void setName(String stuName){
9 name = stuName ;
10 }
11 public int getAge (){
12 return age ;
13 }
14 public void setAge(int stuAge){
15 //下面是对传入的参数进行检查
16 if(stuAge<=0){
17 System.out.println("年龄不合法");
18 }else {
19 age = stuAge ; //对属性赋值
20 }
21 }
22 public void introduce(){
23 System.out.println("大家好,我叫"+name+",我今年"+age+"岁!");
24 }
25 }
26 public class Example01{
27 public static void main(String[] args){
28 Student stu = new Student();
29 stu.setAge(-30);
30 stu.setName("李芳");
31 stu.introduce();
32 }
33 }
②在方法名前面没有返回值类型的声明;
③在方法中不能使用return语句返回一个值;
1 class Person{
2 //构造方法
3 public Person(){
4 //无参构造方法
5 }
6 public Person(int age){
7 age = a; //有参构造方法
8 }
9 public void speak(){
10 System.out.println(“I am” +age+”years old !");
11 }
12 }
13 public class Example{
14 public static void main (String [] args){
15 Person p = new Person(20); //实例化Person对象
16 p.speak();
17 }
18 }
①通过this关键字可以明确地访问一个类的成员变量,解决与局部变量名称冲突问题。
1 class Person{
2 int age ;
3 public Person(int age){
4 this.age = age ; //访问成员变量
5 }
6 public int getAge(){
7 return this .age;
8 }
9 }
②通过this关键字调用成员方法。
③构造方法是在实例化对象时被Java虚拟机自动调用的,在程序中不能像调用其他方法一样去调用构造方法,但可以在一个构造方法中使用“this(【参数1,参数2……】)”的形式来调用其他的构造方法。
①只能在构造方法中使用this 调用其他的构造方法,不能在成员方法中使用。
②在构造方法中,使用this 调用构造方法的语句必须位于第一行,且只能出现一次。
③不能在一个类的两个构造方法中使用this互相调用。
1 class Single{
2 private static Single INSTANCE = new Single();
3 private Single(){}
4 public static Single getInstance(){
5 return INSTANCE ;
6 }
7 }
8 //上面单例又可写成以下形式
9 class Single{
10 private Single(){}
11 public static final Single INSTANCE = new Single();
/*变量名INSTANCE的前面有三个修饰符,其中,public的作用是允许外部直接访问该变量,static 的作用是 让外部可以使用
“类名.变量名“的方式来访问变量,final的作用是禁止外部对该变量进行修改。*/
12 }
13
14 class Example {
15 public static void main(String[] args){
16 Single s = Single.getInstance(); // getInstance()方法是获得Single类实例对象的唯一途径,Single 类是一个单例的类
17 }
18 }
1 class Outer{
2 private int num = 4; //定义类的成员变量
3 //下面的代码定义了一个成员方法,方法中访问内部类
4 public void test(){
5 Inner inner = new Inner();
6 inner.show();
7 }
8 //下面的代码定义了一个成员内部类
9 class Inner{
10 void show(){
11 //在成员内部类的方法中访问外部类的成员变量
12 System.out.println("num = "+num);
13 }
14 }
15 }
16 public class Example16 {
17 public static void main(String[] args){
18 Outer outer = new Outer(); //创建外部类对象
19 outer.test(); //调用test()方法
20 }
21 }
22 //直接创建内部类对象示例
23 public class Example16 {
24 public static void main(String[] args){
25 Outer.Inner inner = new Outer().Inner() ; //创建内部类对象
26 inner.show(); //调用show()方法
27 }
28 }
29 //当内部类被声明为私有,外界将无法访问。
1 class Outer{
2 private static int num = 6; //定义类的成员变量
3 //下面的代码定义了一个静态内部类
4 static class Inner{
5 void show(){
6 System.out.println("num = "+num);
7 }
8 }
9 }
10 public class Example16 {
11 public static void main(String[] args){
12 Out.Inner inner = new Out.Inner(); //创建内部类对象
13 inner.show(); //调用内部类的方法
14 }
15 }
注意:①在静态内部类中只能访问外部类的静态成员。
Java入门——(2)面对对象(上)的更多相关文章
- Java入门之:对象和类
Java对象和类 Java作为一种面向对象语言,支持以下基本概念: 多态 继承 封装 抽象 类 对象 实例 方法 重载 本节我们重点研究对象和类的概念: 对象: 对象是类的一个实例,有状态和行为.例如 ...
- Java学习笔记--面对对象OOP
面向对象编程 OOP 面向对象&面向过程 面向对象编程的本质:以类的方式组织代码,以对象的方法组织数据 面向对象编程的三大特征: 封装 继承 多态 方法 静态方法 通过 static 关键词说 ...
- JAVA程序设计(11)-----面对对象0基础设计 麻将 创建麻将牌 然后洗牌 发牌~ 恩 就这样
zzzzZZZZ 1.開始还想贴图的 实在太懒了-- 这是一张麻将 package com.lovo; import java.awt.Graphics; import java.awt.Image; ...
- JAVA入门 面向对象
主要内容 1.类和对象的概念 2.什么是面向对象 3.什么对象的属性方法 4.何谓对象引用 5.实例化 类和对象的概念 万物皆对象,客观存在的事物皆为对象.我们大到名胜古迹,小道生活中的一件物品,例如 ...
- Java学习——面对对象的思想入门
本文是看过<head first Java>之后的一点感悟,写点东西帮忙以后回忆,Java目前在我的工作中用到还不多,而我又对面对对象的编程非常的感兴趣.曾经在MFC平台上写过 ...
- Java入门篇(六)——类和对象
写到这里终于写到了入门篇的最后一个知识点了.类和对象是Java中经常被提到的两个词汇,实际上可以将类看作对象的载体,它定义了对象所具有的功能.Java是面向对象的语言,因此掌握类与对象是学习Java语 ...
- java.lang.reflect.Method.getAnnotation()方法示例【通过反射获取到方法对象再获取方法对象上的注解信息】
转: java.lang.reflect.Method.getAnnotation()方法示例 java.lang.reflect.Method.getAnnotation(Class <T&g ...
- 201771010135 杨蓉庆《面对对象程序设计(java)》第十七周学习总结
1.实验目的与要求 (1) 掌握线程同步的概念及实现技术: (2) 线程综合编程练习 一.理论知识 ⚫ 线程同步 (1)多线程并发运行不确定性问题解决方案:引入线 程同步机制,使得另一线程要使用该方法 ...
- java基础--面对对象
面对对象--概述 什么是对象? +---->对象可以泛指一切现实中存着的事物 +---->类是对象的抽象集合 什么是面对对象? +--->万物皆对象,面对对象实际就是人与万物接触== ...
随机推荐
- Cornerstone.js使用相关
官网地址:https://github.com/chafey/cornerstone 简介: Cornerstone is an open source project with a goal to ...
- Docker-compose 多个Docker容器管理:以MYSQL和Wordpress为例
搬砖的陈大师版权所有,转载请注明:http://www.lenggirl.com/tool/docker-compose.html Docker-compose 多个Docker容器管理:以MYSQL ...
- JAVA程序打包成exe小程序的过程
编程软件:myeclipse2014 打包exe软件:exe4j 1:在myeclipse2014新建java项目编写程序 2:打包成jar,分两种情况(有无外部依赖包) 无外部依赖包:点击项目--- ...
- C实现dos图文菜单程序实例
前言 公司一台服务器是novell环境,文件管理是基于dos6.22的,客户端启动需要一个图文菜单. 实现 编程环境:汉化版TC2.0 菜单基本功能:显示提示项.显示dbf中的行情信息. ...
- RabbitMQ知多少
1.引言 RabbitMQ--Rabbit Message Queue的简写,但不能仅仅理解其为消息队列,消息代理更合适.RabbitMQ 是一个由 Erlang 语言开发的AMQP(高级消息队列协议 ...
- CJOJ 2044 【一本通】最长公共子序列(动态规划)
CJOJ 2044 [一本通]最长公共子序列(动态规划) Description 一个给定序列的子序列是在该序列中删去若干元素后得到的序列.确切地说,若给定序列X,则另一序列Z是X的子序列是指存在一个 ...
- 取一个整数a从右端开始的4~7位
题目:取一个整数a从右端开始的4-7位. 程序分析:可以这样考虑: (1)先使a右移4位. (2)设置一个低4位全为1,其余全为0的数.可用~(~0 < <4) (3)将上面二者进行&am ...
- win10下安装python2与python3以及pip共存
一 分别安装python2和python3 注意: 安装时记得勾选 Add Python.exe to Path 二 安装pip Python3最新版本有pip,无需安装 Python2: 下载pip ...
- nyoj_6:喷水装置(一)
要让总的使用到的装置数尽可能少,则可以贪心每次选取未使用的半径最大的装置 题目链接: http://acm.nyist.net/JudgeOnline/problem.php?pid=6 #inclu ...
- 【SpringMVC】【EasyUI】关于使用EasyUIForm上传文件,返回JsonIE提示下载文件的解决办法!
先说一下环境 EasyUI+SpringMVC+MyBatis 因为按正常手段,无法使用Ajax来提交一个包含文件的表单,故想到利用EasyUI的Form来提交,EasyUI的form封装了一套伪Aj ...