JAVA06

一只粉红色的大象
1、调用对象中的属性

1. 类名 对象名 = new 类名();
2. 对象名.属性名;            属性:该事物的特征,姓名、年龄等
3. 对象名.方法名(实际参数);         行为:该事物具体能做的事  方法

 类 : 属性, 行为
 * 
 * 		属性: 事物的特征 --> 姓名, 年龄
 * 		在Java中属性使用[成员变量]进行表示					
 * 		成员变量: 跟之前定义变量的格式一致, 只不过位置发生了改变, 类中方法外
 * 				
 * 		行为: 该事物能做的功能 -> 吃饭, 学习
 * 		在Java中行为使用[成员方法]进行表示
 * 		成员方法: 跟之前定义方法的格式一致, 只不过去掉了static关键字
 * 	
 * 类 :
 * 		测试类	-> 带有main方法的类
 * 		实体类	-> Student (描述事物, 封装数据的)

2、在一次程序执行过程中创建了多个对象,.class文件只加载一次

垃圾回收机制,当一个对象的地址值没有被任何一个引用记录住的时候,那么这个对象就会被清理掉,比如我们可以手动的设置引用为null,如p=null。以此来达到对p指引对象内存空间的清理,从而释放空间。

3、成员变量 和局部变量的区别(注意有个main方法,会有干扰)

A:位置不同
			成员变量: 类中方法外
			局部变量: 方法中或者是方法的声明上(形参)
B:初始化值不同
  			成员变量: 有默认初始化值
			局部变量: 没有默认初始化值, 使用之前必须赋值才能使用
C:生命周期不同
			成员变量: 随着对象的创建而存在, 随着对象消失而消失
			局部变量: 随着方法的调用而存在, 随着方法的弹栈而消失
D:内存位置不同
			成员变量: 堆内存
			局部变量: 栈内存
E:作用域不同(编写代码)
		局部变量: 仅在方法所在的大括号中有效
			
		main(){
			int num = 10;
			for(int i = 1; i <= 10; i++){
			System.out.println(i);		// i只能在for的大括号中访问	
							}
						}
		成员变量: 在整个类当中

4、private修饰的成员,不管是变量还是方法,都只能在本类当中进行访问

5、 封装仅仅是一种思想, 并非是一个技术点。封装的目的,隐藏实现的细节,仅仅对外暴露公共的访问方式。—1. 将代码抽取到方法中, 这是对代码的一种封装—2. 将数据抽取到一个类当中, 这是对数据进行的封装(比如对数据库中每一行的内容我们封装为一个对象来存储,这个对象中有很多的成员变量表示每一列)

6、this代表当前对象的引用,谁来调用,就代表谁

public void setName(String name){
				// 问题: 局部变量和成员变量出现了重名
				// Java才用的是就近原则
				this.name = name;}

7、构造方法,用于对象属性的初始化操作,也就是成员变量的初始化。构造方法是创建对象时一定会执行的方法,那么我们可以利用一定会执行来做某些事情,比如打印一些东西。

1. 方法名与类名相同, 大小写也要一致
2. 没有返回值类型, 连void都没有
3. 没有具体的返回值,只能使用return结束

其实类的底层就是方法,因为都需要考有参或者无参构造方法来完成初始化(个人理解_)

// 空参构造: Alt + shift + s + c
// 有参构造:Alt + shift + s + o     ------(eclips中的快捷键)
// setXxx\getXxx : Alt + shift + s + r

8、面向对象是面向过程演变而来的,但是一步一步的步骤,总是有人来做的,就比如求两数的最大值,我们调用一个方法就能完成,但是这个方法总是有人去完成,他就是面向过程去做的

9、创建对象的引用,都是实例对象的地址

10、类中的成员方法没有static修饰,是因为修饰了,那么成员变量也必须static修饰,否则方法没有权限访问成员变量值

11、一个java文件中,可以编写多个class类,但是只能有一个class类被public所修饰,因为,public的作用就是保证名称的统计,我们无法让两个class类都和名称保持一致

12、被private修饰的成员,只能在本类中被使用!!我们用private修饰类中成员变量,并用set、get方法,就可以在调用此方法用成员变量的时候,对成员变量进行限制(比如不能为负数等),私有的目的是为了过滤掉错误的数据。私有后我们设置了公共的set、get方法来访问

package com.heima.mprivate;
public class TestStudent {
	public static void main(String[] args) {
		Student s = new Student();
		s.name = "张三";
		s.setAge(-23);
		
		System.out.println(s.name);
		System.out.println(s.getAge());
	}
}
class Student {
	String name;
	private int age;		// 特点: 只能在本类中进行访问
							// 目的: 为了过滤掉错误的数据
							// 现象: 如果只做私有, 正确的数据也无法进来
							// 解决: 提供age成员变量的公共访问方式, setAge, getAge
	public void setAge(int a){
		if(a >= 0 && a <= 200){
			// 合法年龄, 正常赋值
			age = a;
		}else{
			// 非法年龄, 给出提示,也可throw爆出异常!!
			System.out.println("您的年龄输入有误");
		}
	}
	public int getAge(){
		return age;
	}
}

13、回想一下内部类,作用是什么?

14、this的作用:用于区分局部变量和成员变量的重名问题,this代表当前对象的引用(地址), 谁来调用我, 我就代表谁,就是哪个对象的地址(对象的地址引用)。

15、如果Java中, 局部变量和成员变量出现了重名的问题, 将会采用就近原则。this作用: 用于[区分]局部变量和成员变量的重名问题,(this.): 调用本类成员变量的一种标识。

16、遇到return就会结束方法!!

17、多想一下类和方法的关系,成员变量成员方法,空参有参构造的使用

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
package 软件本科9班小罗; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.beans.Statement; import java.sql.*; import javax.swing.*; public class Java06 extends JFrame implements ActionListener{ JButton Button; JLabel s1; JTextField text; JTextArea ta; Connection conn; java.sql.Statement stat1; java.sql.Statement stat2; ResultSet rs1,rs2; public Java06() { super("中英文查询"); Button=new JButton("查询"); Button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { chazhao(); } }); s1=new JLabel("输入要查询的单词:"); text =new JTextField("word",20); ta = new JTextArea("工作",7,36); JPanel panel=new JPanel(); panel.add(s1); panel.add(text); panel.add(Button); JPanel panel2=new JPanel(); panel2.add(ta); Container con=getContentPane(); con.add(panel,BorderLayout.NORTH); con.add(panel2); setSize(400,200); } public void chazhao() { String i; try { Class.forName("com.mysql.jdbc.Driver");//加载连接驱动; conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/sys?serverTimezone=UTC", "root", "123456"); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block System.out.println("加载驱动失败"); } catch (SQLException e) { System.out.println("获取连接失败"); } String sql1="select 中文 from book where 英文="+"\""+text+"\""; String sql2="select 英文 from book where 中文="+"\""+text+"\""; try { stat1=conn.createStatement(); rs1=stat1.executeQuery(sql1); stat2=conn.createStatement(); rs2=stat2.executeQuery(sql2); while(rs1.next()) { System.out.println(rs1.getString("中文")); } while (rs2.next()) { System.out.println(rs2.getString("英文")); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void main(String[] args) { new Java06().setVisible(true); } @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub if(e.getSource()==Button) { String text=ta.getText(); ta.setText(text);; } } }这个代码中哪里有错呀,运行不了,还连接不成数据库
05-30
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值