一、面象对象

二、什么是类

我肯定说,不知道、不清楚。

简单讲类是java中的基本单元,类是具有相同特性和行为的对象集合

三、类的定义

3.1、类的定义

class 类名称{
数据类型  属性 ;
….                           
 
public 返回值的数据类型 方法名称(参数1,参数2…){
    程序语句 ;    
     [return 表达式;]
}
}
 

3.2、类包含:属性和方法(行为)

  1. package com.pb.demo2;
  2. /*
  3. * 人类
  4. */
  5. public class Person { //Persion为类名
  6. /*
  7. * 属性,name,sex,age
  8. */
  9. public String name; //名字
  10. public String sex ; //性别
  11. public int age; //年龄
  12.  
  13. /*
  14. *方法(行为)
  15. */
  16. //吃饭
  17. public void eat(){
  18. System.out.println("吃饭");
  19. }
  20. //工作
  21. public void work(){
  22. System.out.println("工作");
  23. }
  24. }

四、创建对象

对象是类的实例

  1. package com.pb.demo2;
  2.  
  3. public class PersonTest {
  4.  
  5. public static void main(String[] args) {
  6. //创建Person类的对象
  7. Person person=new Person();
  8. //调用Person类的方法
  9. person.eat();
  10. person.work();
  11. }
  12.  
  13. }

五、有参数的方法

  1. package com.pb.demo2;
  2. /*
  3. * 人类
  4. */
  5. public class Person { //Persion为类名
  6. /*
  7. * 属性,name,sex,age
  8. */
  9. public String name; //名字
  10. public String sex ; //性别
  11. public int age; //年龄
  12.  
  13. /*
  14. *方法(行为)
  15. */
  16. //吃饭
  17. public void eat(String name){ //传入一个String类型参数
  18. System.out.println(this.name+"邀请"+name+"一起吃饭");
  19. }
  20. //工作
  21. public void work(){
  22. System.out.println(name+"的工作理念是,干活挣钱有饭吃!");
  23. }
  24. }

测试类

  1. package com.pb.demo2;
  2. /*
  3. * 测试类
  4. */
  5. public class PersonTest {
  6.  
  7. public static void main(String[] args) {
  8. //创建Person类的对象
  9. Person hanbing=new Person();
  10. hanbing.name="韩冰"; //姓名赋值
  11. hanbing.age=22; //年龄
  12. hanbing.sex="女"; //性别
  13. hanbing.eat("刘顿");
  14. hanbing.work();
  15.  
  16. }
  17.  
  18. }

结果:

韩冰邀请刘顿一起吃饭
韩冰的工作理念是,干活挣钱有饭吃!

六、类方法的组成

共有5部分组成,访问修饰符,返回值类型,方法名,参数列表,方法体

七、方法重载

7.1、方法重载

方法名相同,参数项不同和(访问修饰符和返回值类型)无关

例如:

  1. package com.pb.demo2;
  2. /*
  3. * 人类
  4. */
  5. public class Person { //Persion为类名
  6. /*
  7. * 属性,name,sex,age
  8. */
  9. public String name; //名字
  10. public String sex ; //性别
  11. public int age; //年龄
  12.  
  13. /*
  14. *方法(行为)
  15. */
  16. //吃饭
  17. public void eat(String name){ //传入一个String类型参数
  18. System.out.println(this.name+"邀请"+name+"一起吃饭");
  19. }
  20. //工作
  21. public void work(){
  22. System.out.println(name+"的工作理念是,干活挣钱有饭吃!");
  23. }
  24. //工作
  25. public void work(String contect){
  26. System.out.println(name+"的工作理念是: "+contect);
  27. }
  28. }

测试类:

  1. package com.pb.demo2;
  2.  
  3. import java.util.Scanner;
  4.  
  5. /*
  6. * 测试类
  7. */
  8. public class PersonTest {
  9.  
  10. public static void main(String[] args) {
  11. /*//创建Person类的对象
  12. Person hanbing=new Person();
  13. hanbing.name="韩冰"; //姓名赋值
  14. hanbing.age=22; //年龄
  15. hanbing.sex="女"; //性别
  16. hanbing.eat("刘顿");
  17. hanbing.work();
  18. */
  19. Scanner input = new Scanner(System.in);
  20. Person guest=new Person();
  21. System.out.println("*********测试**********");
  22. System.out.println("请输入姓名:");
  23. String name=input.next();
  24. guest.name=name; //为对象姓名赋值
  25. System.out.println("请输入年龄:");
  26. int age=input.nextInt();
  27. guest.age=age; //为对象年龄赋值
  28. System.out.println("请选择性别:");
  29. System.out.println("1、男 2、女");
  30. switch(input.nextInt()){
  31. case 1:
  32. guest.sex="男"; //为对象性别赋值
  33. break;
  34. case 2:
  35. guest.sex="女"; //为对象性别赋值
  36. break;
  37. default:
  38. System.out.println("输入错误");
  39. return;
  40. }
  41. //调用不带参数的work方法
  42. guest.work();
  43. System.out.println("请输入新的工作理念:");
  44. String contect=input.next();
  45. //调用带参数的work方法
  46. guest.work(contect);
  47. }
  48.  
  49. }

结果:

  1. *********测试**********
  2. 请输入姓名:
  3. 张三
  4. 请输入年龄:
  5. 22
  6. 请选择性别:
  7. 1、男 2、女
  8. 1
  9. 张三的工作理念是,干活挣钱有饭吃!
  10. 请输入新的工作理念:
  11. 挣钱,取老婆
  12. 张三的工作理念是: 挣钱,取老婆

八、成员变量和局部变量

成员变量是定义在类中有变量,在整个类中都有效都可以作用

局部变量在方法中声明的变量,只在这个方法中有效

当成员变量和变量同名时,可以使用this关键字来调用成员变量,如果不加this默认调用局部变量

九、判断下列哪些是方法重载

public void cal(int x,int y,int z){...}

A:public int cal(int x,int y,float z){return 0;}

B:public void cal(int x,int y,int z){return 0;}

C:public int cal(int x,int z){....}

D:public void cal(int x,int y,int z){...}

答案为:A,C

下一题:

A:int f1(){}    int f1(int a){}

B:void f1(int a){}   int f1(int a){}

C:void f1(){}   int f1(int a){}

D: int f1(int b){}  int f1(int a){}

答案为:A,C

Java从零开始学十一(类和对象)的更多相关文章

  1. Java从零开始学三十九(对象序列化)

    一.序列化 将对象的状态存储到特定存储介质中的过程 对象序列化,就是把一个对象变为二进制的数据流的一种方法,通过对象序列化可以方便的实现对象的传输或存储.   序列化保存对象的“全景图”,构建对象的“ ...

  2. Java学习笔记之---类和对象

    Java学习笔记之---类和对象 (一)类 类是一个模板,它描述一类对象的行为和状态  例如:动物类是一个类,动物们都有属性:颜色,动物们都有行为:吃饭 public class Dog { Stri ...

  3. 从零开始学java(二)类与对象

    面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为. 类是对象的抽象,对象是类的具体实例. 1.构造一个类,让其拥有属性和方法 ...

  4. Java从零开始学四十一(反射简述二)

    一.实例化Class类对象 实例化Class类对象的方法有三种: 第一种:通过forName()方法 第二种:类.class 第三种:对象.getClass() 二.Class类的常用方法 No. 方 ...

  5. Java编程里的类和对象

    像我们搞计算机这块的,都知道这么一件事,当前的计算机编程语言主要分为两大块,一为面向过程,二为面向对象.Java就是一门纯面向对象的语言.学习了一个月左右的Java,在下对于Java当中的类和对象有了 ...

  6. Java学习笔记 04 类和对象

    一.类和对象的概念 类 >>具有相同属性和行为的一类实体 对象 >>实物存在的实体.通常会将对象划分为两个部分,即静态部分和动态部分.静态部分指的是不能动的部分,被称为属性,任 ...

  7. JAVA编程中的类和对象

    1:初学JAVA,都知道JAVA是面向对象的编程.笔者这节开始说说类和对象.(实例仅供参考,如若复制粘贴记得修改包名和类名,避免出错) 学习JAVA的快捷键,Alt+/代码补全功能,其实此快捷键启动了 ...

  8. Java从零开始学四十五(Socket编程基础)

    一.网络编程中两个主要的问题 一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输. 在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可 ...

  9. Java从零开始学四十四(多线程)

    一.进程与线程 1.1.进程 进程是应用程序的执行实例. 进程是程序的一次动态执行过程,它经历了从代码加载.执行到执行完毕的一个完整过程,这个过程也是进程本身从产生.发展到最终消亡的过程 特征: 动态 ...

随机推荐

  1. 文件上传demo

    前端代码: <form action="upload.php" enctype="multipart/form-data" method="po ...

  2. 五子棋游戏 canvas 事件 边界检测

    //有一定基础的人才能看得懂 <!doctype html><html lang="en"> <head> <meta charset=& ...

  3. http://qurtyy.blog.163.com/blog/static/5744368120130221419244/

    我们先来看它的思路:把控制不透明度和控向上移动的动画分别存储在两个队列中,控制向上移动的队列按默认情况进行(在2000毫秒内完成),而不透明度的控制在1000毫秒内执行,但这个队列要晚于默认队列100 ...

  4. thread_indent

    http://blog.csdn.net/justlinux2010/article/details/10269033

  5. Windows Phone SDK 8/8.1 官方下载

    Windows Phone SDK 8.1 update英文版http://download.microsoft.com/download/E/7/D/E7D9744A-06A6-46FB-AEA4- ...

  6. 使用 NVM 管理不同的 Node.js 版本

    欢迎您帮忙纠错, 一起帮助更多的人. 一起来学习交流React, QQ群:413381701 首发于:https://github.com/Kennytian/learning-react-nativ ...

  7. [翻译] DFXCoreTextView

    DFXCoreTextView https://github.com/davefoxy/DFXCoreTextView A CoreText wrapper for the formatting an ...

  8. Java获取电脑IP、MAC、各种版本

    Java代码获取电脑IP.MAC.各种版本 package com.rapoo.middle.action; import java.io.BufferedReader; import java.io ...

  9. 使用StringBuilder或StringBuffer简单优化

    使用StringBuilder或StringBuffer // join(["a", "b", "c"]) -> "a an ...

  10. “==”和equals之间的区别

    通俗点讲,==是看看左右是不是一个东西.equals是看看左右是不是长得一样.如果单纯是想记住,==:等于.equals:相同.两个长得一样的人,只能说长的相同(equals),但是不等于他们俩是一个 ...