java学习笔记(二)

来源:互联网 发布:mac下载软件在哪 编辑:程序博客网 时间:2024/06/05 18:21

3.16  类~~~~~~~~

java面向对象编程(一)

类与对象,构造方法

一个全面的类定义比较复杂

package 包名;class 类名 extends 父类 implements接口名{成员变量;构造方法;成员方法;}
  • 类名的首字母大写

一般创建对象:类名 对象名 = new  类名(); 

 

类的成员方法(成员函数)定义

  • 方法名的首字母是小写的
  • 如何定名字1.驼峰法(匈牙利法)myCry  2.下划线法my_cry
public 返回数据类型 方法名(参数列表){    语句;//方法(函数)主体}

 

构造方法:

提出:在创建对象的时候直接指定属性

构造方法是类的一种特殊的方法,它的主要作用是完成对新对象的初始化。它有几个特点:

  1. 构造方法名和类名相同
  2. 构造方法没有返回值
  3. 主要作用是完成对新对象的初始化
  4. 在创建一个类的新对象时,系统会自动的调用该类的构造方法完成新对象的初始化
  5. 一个类可以定义多个不同的构造方法
  6. 每个类都有一个默认的构造方法

代码合集:

 /*作者:陈晓宇日期:2012.3.16功能:完成找小猫的问题*/class Cat{//下面的就是类的成员变量(属性)int age;String name;String colour;}class Person{int age;String name;//构造方法public Person(int age,String name){System.out.println("我是构造1");age=age;name=name;}public Person(String name){System.out.println("我是构造2");name =name;}//行为public void speak(){System.out.println("I'm a good guy");}public void jiSuan(){int result=0;for(int i=1;i<=1000;i++){result+=i;}System.out.println("result="+result);}public void jiSuan(int n){int result=0;for(int i=1;i<=n;i++){result+=i;}System.out.println("result="+result);}public void chengfa(int n){for(int i=1;i<=n;i++){for(int j=1;j<=i;j++){System.out.print(i+"*"+j+"="+i*j+" ");}System.out.println();}}}public class Demo4{public static void main(String []args){/*int cat1Age=3;String cat1Name="小白";String cat1Color="白色";int cat2Age=100;String cat2Name="小花";String cat2Color="花色";*///创建一个猫对象Cat cat1=new Cat();//访问属性的 对象名.属性名cat1.age=3;cat1.name="小白";cat1.colour="白色";Cat cat2=new Cat();cat2.age=100;cat2.name="小花";cat2.colour="花色";Person p1 = new Person(25,"chenxiaoyu");Person p2 = new Person("haha");p1.speak();//p1.jiSuan();//p1.jiSuan(10);//p1.chengfa(10);}}


 

 

java面向对象编程(二)

目标:

  1. 初步理解什么是this代词
  2. 什么是类变量和类方法
  3. 初步理解抽象、封装和继承,多态 
//功能:this的必要性public class Demo3{public static void main(String []args){Dog dog1=new Dog(2,"大黄");Person p1 = new Person(dog1,23,"郭德纲");Person p2 = new Person(dog1,24,"刘谦");p1.showInfo();p2.showInfo();}}class Dog{int age;String name;public Dog(int age,String name){this.age=age;this.name=name;}//显示狗名public void showInfo(){System.out.println("狗名是:"+this.name);}}class Person{int age;String name;Dog dog;//引用类型public Person(Dog dog,int age,String name){//可读性不好this.age = age;this.name = name;this.dog = dog;}public void showInfo(){System.out.println("人名是:"+this.name);this.dog.showInfo();}}
  •  this不能再类定义的外部使用,只能在类定义的方法中使用

 类变量(静态变量 )

提出问题:有一群小孩在玩游戏,不断有新小孩加入游戏,怎样统计小孩的人数? pl~~~

//功能:this的必要性public class Demo3{public static void main(String []args){Child ch1 = new Child(3,"妞妞");ch1.joinGame();Child ch2 = new Child(4,"阿迪飞");ch2.joinGame();System.out.println("共有:"+Child.total);System.out.println("共有:"+ch1.total);System.out.println("共有:"+ch2.total);}}class Child{int age;String name;//静态变量,可以被任何一个对象访问static int total=0;public Child(int age,String name){this.age=age;this.name=name;}public void joinGame(){total++;System.out.println("有一个小孩加入游戏");}}
  •  什么是类变量?

类变量是该类的所有对象共享的变量,任何一个该类的对象去访问它时,取到的都是相同的值,同样任何一个该类的对象去修改它时,修改的也是同一个变量。

  • 如何定义类变量?

定义语法:

访问修饰符 static 数据类型 变量名;

  • 如何访问类变量?

类名.类变量名 或者 对象名.类变量名

 

public class Demo3{static int i=1;static{//该静态区域块只被执行一次//即使不创建对象 也会被执行!!System.out.println("a");i++;}public Demo3(){System.out.println("b");i++;}public static void main(String []args){    Demo3 t1=new Demo3();    System.out.println(t1.i);//3    Demo3 t2=new Demo3();    System.out.println(t2.i);//4}}


类方法:

public class Demo3{public static void main(String []args){Stu stu1 = new Stu(29,"aa",340);Stu stu2 = new Stu(25,"bb",530);System.out.println(Stu.getTotalFee());}}class Stu{int age;String name;int fee;static int totalFee;public Stu(int age,String name,int fee){this.age=age;this.name=name;totalFee+=fee;}//返回总学费 类方法(静态方法)//java中规则:类变量原则上用类方法去访问和操作public static int getTotalFee(){ //age++;//错误 return totalFee;}}
  • 类变量与实例变量区别:
  1. 加上static成为类变量或者静态变量,否则称为实例变量
  2. 类变量是与类相关的,公共的属性;实例变量时属于每个对象个体的属性;
  3. 类变量可以通过类名.类变量名直接访问(不能是private)
  • 类方法小节
  1. 类方法属于与类相关的,公共的方法
  2. 实例方法属于每个对象个体的方法
  3. 类方法可以通过类名.类方法名直接访问