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基础--面对对象
面对对象--概述 什么是对象? +---->对象可以泛指一切现实中存着的事物 +---->类是对象的抽象集合 什么是面对对象? +--->万物皆对象,面对对象实际就是人与万物接触== ...
随机推荐
- docker 17 安装
docker17 安装 新增一键安装命令: curl -sSL https://get.docker.com/ | sh 以下为手动安装过程 翻译自 Get Docker for Ubuntu Doc ...
- H5在线编辑器优化总结
花了三个半月做了个编辑器.自己一个人写写CSS,搞搞html,弄下JS,大部分精力都是掏鼓js,时间很仓促,后面领导帮忙写了四个页面逻辑(音频,图片,视频). 很多能优化的,以此文章记录要已经优化和未 ...
- SerializableObj
package JBJADV003; import java.io.*; public class SerializableObj { /** * @param args * @throws IOEx ...
- Hibernate 集合映射 一对多多对一 inverse属性 + cascade级联属性 多对多 一对一 关系映射
1 . 集合映射 需求:购物商城,用户有多个地址. // javabean设计 // javabean设计 public class User { private int userId; privat ...
- 常用精品API接口汇总
下面列举了100多个国内常用API接口,并按照 笔记.出行.词典.电商.地图.电影.即时通讯.开发者网站.快递查询.旅游.社交.视频.天气.团队协作.图片与图像处理.外卖.消息推送.音乐.云.语义识别 ...
- Oracle中的游标的原理和使用详解
游标的简介 逐行处理查询结果,以编程的方式访问数据. 游标的类型: 1,隐式游标:在 PL/SQL 程序中执行DML SQL 语句时自动创建隐式游标,名字固定叫sql. 2,显式游标:显式游标用于处理 ...
- JavaScript一个猜数字游戏
效果图: 代码: <body> <script type="text/javascript"> window.onload = newgame; //页面载 ...
- java基础05 集合
一.集合的由来? 我们学习Java,可以操作很多对象 ,存储 的容器有数组和StringBuffer,StringBuilder; 而数组的长度固定,所以不适合做变化的需求,Java就提供了集合供我们 ...
- Threads(线程)(二)
前一章我们提到了同步异步,多线程:在开始今天的文章之前,先来总结一下上一篇文章的内容,多线程的优点. 多线程有哪些优点呢,在这里通过代码依次来总结. 异步多线程的三大特点 1)同步方法卡界面,原因是主 ...
- 老生常谈之SQL Server (行转列,列转行)
Open the first article 在本文章中主要介绍以下内容: 1.静态行转列 2.静态列转行 3.动态行转列 4.动态列转行 1.静态行转列 --静态的行转列 --新建一个科目成绩表 - ...