Java复习笔记4

package com.lesson6.instance;
/**
 * 构造方法:
 * 定义:与类名完全相同,并且没有【返回类型描述】的方法叫构造方法
 * 调用时间:实例化时(而不是声明或者其他时候)
 * 作用:当实例化一个类的对象时,将该类必须使用的一些变量进行初始化, 防止忘记设置属性而输出 null
 * 是不是必须设置构造方法?不是,默认为无参数的构造方法
 */
class Person{
int eyes = 2;
String name = null; //默认为空null,如果实例时没有对该属性赋值,则使用时直接输出null
//构造方法前面没有任何【返回类型】的描述,连void都不加
//构造方法也是方法,只是一种特殊的方法
Person(String n){
System.out.println("这里是构造方法"); //在分割线2之后输出,即实例化时一定调用构造函数
name = n; //设置属性变量的初值
}
//返回类型为void,void也属于对方法返回类型的描述
void look(String target) {
System.out.println(name + "在用" + eyes + "个眼睛看" + target);
}
//如果在方法的前面声明(描述)了返回类型,则必须在方法中返回一个对应类型的值
int getAge() { //返回值为int类型
return 21;
}
}

public class ClassExample {
public static void main(String[] args){
System.out.println("===============分割线1================");
Person p;
System.out.println("===============分割线2================");
//p = new Person();//报错,因为定义的构造函数是Person(String name){},实例化必须按照构造函数来
//默认构造函数是没有参数的
p = new Person("Lina");
System.out.println("===============分割线3================");
//p.name = "Jack";
//如果设置了p.name = "Jack",则输出:Jack在用2个眼睛看Lisa
//当忘记设置姓名属性时,则输出Lina在用2个眼睛看Lisa
//System.out.println("===============分割线4================");
p.look("Lisa");
}
}

package com.lesson6.example;
/**
 *  了解java类的基础
 * */
/**
 * 成员变量
 * 1、成员变量用来刻画类的状态(属性),在类中直接定义
 * 2、成员变量又分为:
            实例成员变量(简称实例变量)
            类成员变量(简称类变量)。使用static修饰的成员变量即为类成员变量
   3、成员变量名首字母必须小写,如果由多个单词组成,从第二个单词开始首字母必须大写。
   4、成员变量的定义没有先后顺序,但是最好将成员变量的定义集中在类的顶部。
 * */

/**
 * 【注意】
 *   1成员变量可以使用public、protected、private和static修饰,但局部变量不能
 *   2、成员变量有初始默认值,局部变量没有,需要显示指定
 * */
class Param{
//成员变量:在【类】中直接定义的变量叫做成员变量,成员变量在整个类的内部都有效
int num = 3;
void getNum(){
//局部变量:在【方法】内部定义的变量和方法的参数叫做局部变量(注意:方法的参数也是局部变量)
//只在方法体内有效
int num = 100;
System.out.println(num); //输出100,而不是3
//成员变量的隐藏:如果成员变量和局部变量同名(就近原则),成员变量就被隐藏,在该方法内暂时失效
System.out.println(this.num); //输出3,而不是100
//如果想要在包含同名局部变量的方法内使用成员变量,则必须使用this关键字来引用成员变量
}
}

public class LocalParam {
public static void main(String[] args){
Param p = new Param();
p.getNum();
}
}

3、package com.shxt.lesson6.example;

class M {
//前提:在一个类中,如果两个方法的名称相同,参数的类型不同,可以出现在同一个方法中 ,参数的个数不同,可以出现在同一个方法中
//概念:在一个类中,如果多个方法的名称相同,参数的个数或者类型不同,叫方法重载
public void make(String a) { }

public void make(float b) { }

public void make(String a, String c) { }
/**
* 【注意】
* 1.方法的[返回值类型]和[参数的名称]不参与比较,即方法重载只跟参数的个数和类型有关,
* 同名的方法如果仅返回值类型或参数名称不同不算是重载。
* 2.方法重载必须是在一个类中
* */
}

public class ReLoadExample {
public static void main(String[] args) {
M m = new M();
m.make("");
}
}

4、package com.shxt.lesson6.example;
/**
 * 了解java类的基础
 * */
/**
 * 方法分为:
        类方法(使用static修饰的方法即为类方法)
        实例方法
 * */
/**
 * 方法调用成员变量:
 * 一个类中实例方法可以调用类中的所有成员变量(包括实例变量和类变量);
 * 而类方法只能调用类变量,不能调用类中的实例变量。 
 * --------------------------------------------------------------------------------
 * 方法之间的互相调用: 
 * 一个类中的方法可以互相调用,实例方法可以调用该类中的其它方法;
 * 类方法只能调用该类的其他类方法,不能调用类中的实例方法。
 * --------------------------------------------------------------------------------
 * 总结:实例可以调动所有,类只能调动类。
 * */
class T{
String str1 = "俺是实例变量";
static String str2 = "偶是类变量吖";
void t1(){
System.out.println("===================我是吃货的实例方法=============================");
System.out.println(str1);
System.out.println(str2);
}
static void t2(){
System.out.println("===================我是傲娇的类方法=============================");
//System.out.println(str1);//报错,类方法不能调用类中的实例变量
System.out.println(str2);
}
}

public class Type {
public static void main(String args[]){
T t = new T();
t.t1();
t.t2();
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值