java 基础3 类

韩顺平视频笔记


类的定义

package 包名

1. 成员变量

	public static void main(String[] args) {
		 //创建一个猫对象  或者  声明一个对象
		 Cat cat1= new Cat(); //不要忘了后边括号
		 //访问变量    对象名.变量名
		 cat1.age=10;
		 cat1.name="aaa";//注意是 双引号 不是单引号
		 cat1.color="yellow";
		}
      }
class Cat //类名 首字母应该大写
{
	//成员变量 或者成员属性
	int age ;
	String name;
	String color;	
}
类是抽象的 代表一类

对象是具体的 实际的 代表一个具体实物

类是对象的模板  对象是类的一个个个体


class 类名 extends 父类名 implements 接口名
{
成员变量           包括基本数据类型  和 引用类型  比如 Master 类中的 myMaster
构造方法
成员方法
}


成员属性  成员方法

public class flow {


	public static void main(String[] args) {
		Person p1= new Person();
		p1.age=10;
		Person p2= new Person();
		p2=p1;   //p1 赋值 给 p2 
		System.out.println(p2.age);
		p2.age=5; //更改p2 的年龄
		System.out.println(p2.age);
		System.out.println(p1.age);   //输出p1 p2 年龄  都是5了  说明 指向同一个对象
		}
      }
class Person{
	int age;
	String name;
	
}


2.成员方法

 在类中 定义行为


成员方法的 语法规则 

public  返回数据类型  方法名(参数列表)

{

方法体

}


举例

public void speak(){
System.out.println("i can speak");
}


class Person{
	int age;
	String name;
	
	public void speak(){
		System.out.println("i can speak");
		}
	
	//成员方法
	public int jisuan(){
		int sum=0;
		for (int i=1;i<100;i++){
			sum=sum+i;
		}
		System.out.println(sum);
		return sum;
		
	}
	//带参数的成员方法
	public int jisuan(int n){
		int sum=0;
		for (int i=1;i<n;i++){
			sum=sum+i;
		}
		System.out.println(sum);
		return sum;
	}
	
}

带参数的方法  虽然返回值不同但是 参数一样

//计算两个数的和 ,并且把结果返回给调用它的函数
	public int jisuan (int a, int b){
		int x = a+b;
		return x;    //返回类型 和返回结果的类型 必须一样
	}       
//如果两个方法 返回值不同 但是方法名一样 编译错误
	public void jisuan (int a ,int b){
		int x = a+b;
		
	}

成员方法    如何 声明  

public             int              test      (int a) 

访问修饰符   数据类型  函数名  (参数列表)

return  表达式


注意  调用调用成员方法的时候,类型  和  个数   都要一样 


3. 构造方法  构造函数 

特点  1. 方法名和类名相同   2. 没有返回值  3.在创建一个类的新对象时,系统会自动调用该类的构造方法

可以有多种构造方法   

如果不定义构造方法   系统有默认的构造方法

public static void main(String[] args) {
		Person p1= new Person(8,"zhihao");
		Person p2 = new Person(8);
                System.out.println(p1.name);
		System.out.println(p1.age);
		System.out.println(p2.age);}
class Person{
	int age;
	String name;
	
	Person(int age,String name){
		this.age=age;
		this.name = name;
	}
	public Person(int age){
		this.age=age;
		
	}
}

主要用处: 就是初始化 成员属性  成员变量



4. this

上边的例子  

this 属于一个具体对象  而不是属于类

public class flow {

	public static void main(String[] args) {
		Dog dog1= new Dog(2,"aa");
		
		Person p1 = new Person(dog1,23,"zhihao");//它们都是 仅仅指向 dog1 对象 
		Person p2 = new Person(dog1,22,"shiwen"); 
		
		p1.showInfo();
      }
	
}
class Person{
	int age;
	String name;
	Dog dog ;  //引用类型
	public Person(Dog dog,int age,String name){
		this.age=age ;
		this.name = name;  //this 只能在定义的时候用
		this.dog = dog;
		
	}
	public void showInfo(){
	    System.out.println(name);
	    System.out.println(this.dog.name);
	}
}
class Dog{
   int age;
   String name;
   Dog(int age,String name){
	   this.age=age;
	   this.name=name;
   }
}


5.类变量  静态变量 静态方法 类方法

public class flow {
         public static void main(String[] args) {
		Person p1 = new Person(23,"zhihao");
		Person p2 = new Person(22,"shiwen");
		System.out.println(p1.total);  //total 是静态变量  可以不通过对象  用类直接访问
		System.out.println(Person.total);
		p1.showInfo();   //showInfo 是静态方法  可以通过  对象 或者 类直接访问
		Person.showInfo();
      }	
}

class Person{
int age;String name;
  public static int total=0; //total 是静态变量 可以被任意对象 访问
  public Person(int age,String name){
  this.age=age ;
  this.name = name;
  total ++;
  System.out.println("join");
}

static public void showInfo(){ //静态方法 静态方法不能访问 非 类变量 比如在静态方法中 访问 age 就会报错 
   System.out.println(total); }
}


静态区域块

public class flow {
	    static int i;
	    static{
	    	//该静态区域块  只被执行一次  即使 主函数里边没有东西 也会执行这个玩意儿
	    	i++;
	    	System.out.println("static");
	    }
        public flow(){
        	i++;}
	
	public static void main(String[] args) {
		flow flow1 = new flow();
		System.out.println(flow.i);
		flow flow2 = new flow();
		System.out.println(flow.i);
		
      }
	
}


输出结果

static 

2

3



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值